{"id":112335,"date":"2026-08-19T12:00:00","date_gmt":"2026-08-19T12:00:00","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=112335"},"modified":"2026-08-14T09:21:58","modified_gmt":"2026-08-14T09:21:58","slug":"json-indexing-in-sql-server-2025-how-it-works-and-current-limitations","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/json-indexing-in-sql-server-2025-how-it-works-and-current-limitations\/","title":{"rendered":"JSON indexing in SQL Server 2025: how it works and current limitations"},"content":{"rendered":"\n<p><strong>SQL Server 2025 finally gives developers a native JSON data type and, with it, a purpose-built way to index JSON documents with the new <strong><code>CREATE JSON INDEX<\/code> statement<\/strong><\/strong>.<strong> Before this, indexing JSON meant exposing individual properties through computed columns and building standard indexes on top.<\/strong><\/p>\n\n\n\n<p><strong>It&#8217;s a major step toward closing the gap with databases like PostgreSQL, long praised for its JSON and JSONB support. However, as a preview feature, JSON indexing comes with real constraints DBAs and developers should understand before adopting it.<\/strong> <\/p>\n\n\n\n<p><strong>This guide has everything you need to know about JSON indexing in SQL Server 2025: what it is, how it works, and current limitations.<\/strong><\/p>\n\n\n\n<p>For many years, one of the reasons given as to why developers preferred <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/postgresql\/\" target=\"_blank\" rel=\"noreferrer noopener\">PostgreSQL<\/a> to <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL Server<\/a> was the level of <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/oracle-databases\/json-for-absolute-beginners-part-1-introduction\/\" target=\"_blank\" rel=\"noreferrer noopener\">JSON<\/a> (and more recently <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/mysql-vs-postgresql-json-data-type\/#json-support-in-postgresql-explained:~:text=ii.-,JSONB,-(Binary%20JSON)%3A%C2%A0It\" target=\"_blank\" rel=\"noreferrer noopener\">JSONB<\/a>) support. From SQL Server 2017, that started to change.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-json-support-in-sql-server-pre-2025-what-was-it-like\">JSON support in SQL Server pre-2025: what was it like?<\/h2>\n\n\n\n<p><strong>In SQL Server 2017, several useful JSON-related functions were added<\/strong>:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><code>JSON_VALUE<\/code> &#8211; which retrieved a specific (scalar) value from within JSON<br><br><\/li>\n\n\n\n<li><code>JSON_QUERY<\/code> &#8211; which retrieved JSON (likely a subset) from the JSON<br><br><\/li>\n\n\n\n<li><code>OPENJSON<\/code> &#8211; which let you retrieve data from within JSON in a table-like form<br><br><\/li>\n\n\n\n<li><code>FOR JSON<\/code> &#8211; which let you output JSON from a SQL query<\/li>\n<\/ul>\n<\/div>\n\n\n<p><strong>If you&#8217;d worked with XML in SQL Server, this was all very familiar, aside from one key difference. With XML, we had an XML data type &#8211; but with JSON, there was <em>not<\/em> a JSON data type.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-why-was-there-no-json-data-type\">Why was there no JSON data type?<\/h3>\n\n\n\n<p>One of the key reasons for this was that, for a while, the product team weren&#8217;t keen on adding new data types because of the extra work required around the edges. For example, all the work required in client libraries and related code.<\/p>\n\n\n\n<p>Another useful addition along the way was the <code>ISJSON<\/code> function, designed to test if the value was <a href=\"https:\/\/www.ietf.org\/about\/\" target=\"_blank\" rel=\"noreferrer noopener\">Internet Engineering Task Force (IETF)<\/a> conformant JSON. In SQL Server 2022, it could check if the JSON was a valid <code>VALUE<\/code>, <code>ARRAY<\/code>, <code>OBJECT<\/code>, or <code>SCALAR<\/code>. <\/p>\n\n\n\n<p>There were limitations in practical use &#8211; it didn&#8217;t, for example, check for key uniqueness, and while we could check if a value was JSON, we couldn&#8217;t actually <em>store<\/em> it as JSON.<\/p>\n\n\n\n<p>Sub-queries were a challenge with this. If a sub-query returned JSON data, what data type would it <em>actually<\/em> return without a JSON data type? When XML had the same issue early on, the <code>TYPE<\/code> directive was effectively its replacement, saying: <em>&#8220;I really meant XML&#8221;<\/em>.<\/p>\n\n\n\n<p>Another useful addition was the <code>JSON_PATH_EXISTS<\/code> function, which eliminated potential confusion when you were checking for JSON values. If you asked to retrieve a value and the path to the value didn&#8217;t exist, you just got <code>NULL<\/code> back. OK, you <em>did<\/em> also get <code>NULL<\/code> back if the value was defined in the JSON as <code>NULL<\/code>, but this function then let us work out what was happening.<\/p>\n\n\n\n<p>Finally, in SQL Server 2022, we could construct JSON in <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/t-sql-programming-sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">T-SQL<\/a> code by using new functions like <code>JSON_ARRAY<\/code> and <code>JSON_OBJECT<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-json-indexing-in-sql-server-2025\">JSON indexing in SQL Server 2025<\/h2>\n\n\n\n<p><strong>SQL Server 2025 changed everything for JSON, adding &#8211; finally &#8211; a <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/data-types\/json-data-type?view=sql-server-ver17\" target=\"_blank\" rel=\"noreferrer noopener\">JSON data type<\/a>, along with the aggregates <code>JSON_ARRAYAGG<\/code> and <code>JSON_OBJECTAGG<\/code>.<\/strong><\/p>\n\n\n\n<p>The biggest change, however, was around indexing. Prior to SQL Server 2025, indexing JSON data generally meant exposing individual JSON properties through computed columns and then creating standard SQL Server indexes on those columns. <\/p>\n\n\n\n<p>I must admit, it worked quite well &#8211; in fact, we&#8217;d done the same with XML decades ago. But, the approach introduced in SQL Server 2025 was far more direct: the JSON index, with the new <code><a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/statements\/create-json-index-transact-sql?view=sql-server-ver17\" target=\"_blank\" rel=\"noreferrer noopener\">CREATE JSON INDEX<\/a><\/code> statement. This new statement can index values within a JSON document <em>without<\/em> requiring a computed column for every property that you want to search. <\/p>\n\n\n\n<p>It&#8217;s worth noting that, at the time of writing, JSON indexes are still listed as a preview feature. As an aside, I <em>really<\/em> wish there weren&#8217;t so many features in SQL Server 2025 still in preview!<\/p>\n\n\n\n<section id=\"my-first-block-block_e47a9a6f174a66254e43aa9f728c23bb\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Fast, reliable and consistent SQL Server development&#8230;<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            &#8230;with SQL Toolbelt Essentials. 10 ingeniously simple tools for accelerating development, reducing risk, and standardizing workflows.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/products\/sql-toolbelt-essentials\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Learn more &amp; try for free: Fast, reliable and consistent SQL Server development...\">Learn more &amp; try for free<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-an-example-of-json-indexing-in-sql-server-2025\">An example of JSON indexing in SQL Server 2025<\/h3>\n\n\n\n<p>Consider an application that stores additional customer information in JSON:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">USE tempdb;\nGO\n\nCREATE TABLE dbo.Customers\n(\n    CustomerID int NOT NULL\n        CONSTRAINT PK_dbo_Customers PRIMARY KEY,\n    CustomerName nvarchar(100) NOT NULL,\n    ContactDetails json NULL\n);<\/pre><\/div>\n\n\n\n<p>The <code>ContactDetails<\/code> column might contain documents such as:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">{\n    \"type\": \"Retail\",\n    \"region\": \"Australia\",\n    \"contact\": {\n        \"preferredMethod\": \"Email\"\n    }\n}<\/pre><\/div>\n\n\n\n<p>SQL Server can retrieve individual properties with functions such as <code>JSON_VALUE<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">SELECT CustomerID,\n       CustomerName\nFROM dbo.Customers\nWHERE JSON_VALUE(ContactDetails, '$.region') = 'Australia';<\/pre><\/div>\n\n\n\n<p>If we didn&#8217;t have a way to index this, SQL Server might need to examine <em>all<\/em> of the JSON data &#8211; and for every row.<\/p>\n\n\n\n<p>As I mentioned, one solution was to create a computed column:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">ALTER TABLE dbo.Customers\nADD Region AS\n    JSON_VALUE(ContactDetails, '$.region') PERSISTED;\nGO\n\nCREATE INDEX IX_dbo_Customers_RegionLookup\nON dbo.Customers(Region);\nGO<\/pre><\/div>\n\n\n\n<p>Note that I&#8217;ve used the <code>PERSISTED<\/code> option as I like these to just be calculated when the value is changed.<\/p>\n\n\n\n<p>Indexing this way is still useful, particularly when JSON is stored in <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/learn\/when-use-char-varchar-varcharmax\/\" target=\"_blank\" rel=\"noreferrer noopener\">varchar or nvarchar<\/a> columns. SQL Server can match a query containing the same <code>JSON_VALUE<\/code> expression to the indexed computed column without requiring applications to query the computed column explicitly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-create-a-json-index\">How to create a JSON index<\/h2>\n\n\n\n<p>For a column using the new native JSON data type introduced in SQL Server 2025, we can create an index directly:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">CREATE JSON INDEX JX_dbo_Customers_ContactDetails\nON dbo.Customers(ContactDetails);\nGO<\/pre><\/div>\n\n\n\n<p>When you do this, SQL Server recursively indexes the paths in the JSON document. Queries like the one searching for Australian customers might then take advantage of the JSON index.<\/p>\n\n\n\n<p>This is even more powerful when applications search several properties within a document. Instead of adding multiple <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/performance-sql-server\/computed-column-performance-in-sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">computed columns<\/a> and indexes, one JSON index can support searches across multiple JSON paths.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-define-paths-to-index\">How to define paths to index<\/h2>\n\n\n\n<p>To minimize the impact of this data, we can redefine the index to only index the paths that our apps actually search:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">DROP INDEX JX_dbo_Customers_ContactDetails\nON dbo.Customers;\nGO\n\nCREATE JSON INDEX JX_dbo_Customers_ContactDetails\nON dbo.Customers(ContactDetails)\nFOR\n(\n    '$.type',\n    '$.region',\n    '$.contact'\n);\nGO<\/pre><\/div>\n\n\n\n<p>Note that specifying <code>$.contact<\/code> recursively covers values below that path. As such, SQL Server doesn&#8217;t allow overlapping paths, like <code>$.contact<\/code><strong> <\/strong>and <code>$.contact.preferredMethod<\/code>, in the same JSON index.<\/p>\n\n\n\n<p>Limiting the indexed paths can make sense for large documents where only a small part of the JSON is used for searching.<\/p>\n\n\n\n<section id=\"my-first-block-block_35ef81be587357be730b288c3a6b85a8\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Subscribe to the Simple Talk newsletter<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            Get selected articles, event information, podcasts and other industry content delivered straight to your inbox.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/simple-talk\/subscribe\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Subscribe: Subscribe to the Simple Talk newsletter\">Subscribe<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-which-queries-can-use-json-indexes\">Which queries can use JSON indexes?<\/h2>\n\n\n\n<p><strong>Unlike other special indexes (such as <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/t-sql-programming-sql-server\/sql-server-spatial-indexes\/\" target=\"_blank\" rel=\"noreferrer noopener\">spatial<\/a> ones), JSON indexes aren&#8217;t limited to just one new JSON-specific predicate. They let you search JSON far more conveniently.<\/strong><\/p>\n\n\n\n<p>For example, a straightforward <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/t-sql-programming-sql-server\/exploring-scalar-solutions-to-complex-data-math\/\" target=\"_blank\" rel=\"noreferrer noopener\">scalar<\/a> comparison can use <code>JSON_VALUE<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">SELECT CustomerID,\n       CustomerName\nFROM dbo.Customers\nWHERE JSON_VALUE\n      (\n          ContactDetails,\n          '$.region'\n      ) = 'Australia';<\/pre><\/div>\n\n\n\n<p>I mentioned that <code>JSON_PATH_EXISTS<\/code> can test whether a path is present:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">SELECT CustomerID\nFROM dbo.Customers\nWHERE JSON_PATH_EXISTS\n      (\n          ContactDetails,\n          '$.contact.preferredMethod'\n      ) = 1;<\/pre><\/div>\n\n\n\n<p>Also added in SQL Server 2025 was <code>JSON_CONTAINS<\/code>. It searches for values, objects, or arrays within JSON documents and can take advantage of a JSON index.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-bit-more-on-json-arrays\">A bit more on JSON arrays<\/h3>\n\n\n\n<p>If an application frequently searches values held inside JSON arrays, the index can be created with:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \">CREATE JSON INDEX IX_Customers_ContactDetails\nON dbo.Customers(ContactDetails)\nWITH\n(\n    OPTIMIZE_FOR_ARRAY_SEARCH = ON\n);<\/pre><\/div>\n\n\n\n<p>This option isn&#8217;t on by default, so should be enabled intentionally for workloads where array searches are important.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-are-the-current-limitations-of-json-indexing-in-sql-server-2025\">What are the current limitations of JSON indexing in SQL Server 2025?<\/h2>\n\n\n\n<p><strong>Unfortunately, as with many new features, there are (currently) some restrictions and limitations to JSON indexing in SQL Server 2025.<\/strong><\/p>\n\n\n\n<p>First, a table <em>must<\/em> have a <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/learn\/primary-key-primer-for-sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">clustered primary key<\/a> before a JSON index can be created. Furthermore, only <em>one<\/em> JSON index can currently be created for a particular JSON column, and changing the paths included in an index requires recreating it. <\/p>\n\n\n\n<p>JSON indexes also don&#8217;t currently support online index creation or rebuilding, so maintenance operations can require a schema-modification lock on the underlying table.<\/p>\n\n\n\n<p>Finally, there are still some limitations on which <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/queries\/predicates?view=sql-server-ver17\" target=\"_blank\" rel=\"noreferrer noopener\">predicates<\/a> can make effective use of the index. For example, the current implementation supports comparisons using <code>JSON_VALUE<\/code> for JSON-index optimization, but <em>not<\/em> the <code>LIKE<\/code> or <code>IS NULL<\/code> predicates.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-summary-json-indexing-in-sql-server-2025\">Summary: JSON indexing in SQL Server 2025<\/h2>\n\n\n\n<p>In SQL Server 2025 JSON indexing becomes a design choice, but you need to decide if you are OK with using a preview feature. Many people have asked for this to be released in a cumulative update (CU) rather than in the next version, but it&#8217;s hard to know what will happen.<\/p>\n\n\n\n<p>Either way, computed-column indexes haven&#8217;t suddenly become obsolete. They are still useful, particularly when JSON is stored as character data (previously the only option). These indexes can provide very targeted outcomes and let you use other standard features, like <a href=\"https:\/\/www.red-gate.com\/simple-talk\/other\/query-index-informations\/\" target=\"_blank\" rel=\"noreferrer noopener\">included columns<\/a>.<\/p>\n\n\n\n<p>Overall though, SQL Server 2025&#8217;s support for JSON makes it considerably more practical for both developers and DBAs alike.<\/p>\n\n\n\n<section id=\"faq\" class=\"faq-block my-5xl\">\n    <h2>FAQs: JSON indexing in SQL Server 2025<\/h2>\n\n                        <h3 class=\"mt-4xl\">1. What is a JSON index in SQL Server 2025?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">A JSON index is a new index type created with the <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">CREATE JSON INDEX<\/code> statement. It recursively indexes paths within a JSON document stored in a native JSON column, allowing queries using functions like <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">JSON_VALUE<\/code>, <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">JSON_PATH_EXISTS<\/code>, and <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">JSON_CONTAINS<\/code> to use the index instead of scanning every row.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">2. Do I need a computed column to index JSON in SQL Server 2025?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">No. Prior to SQL Server 2025, indexing JSON required creating computed columns for each property and indexing those columns. The new native JSON index removes that requirement, though computed-column indexes remain useful for JSON stored as character data (varchar\/nvarchar).<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">3. Can I create multiple JSON indexes on the same column?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">No. Currently, only one JSON index can be created per JSON column. However, that single index can cover multiple JSON paths, as long as the paths don&#8217;t overlap (for example, you can&#8217;t index both <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">$.contact<\/code> and <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">$.contact.preferredMethod<\/code> together).<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">4. Does SQL Server 2025 support online JSON index creation?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">Not yet. JSON indexes don&#8217;t currently support online index creation or rebuilding, which means maintenance operations may require a schema-modification lock on the table.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">5. Which predicates can use a JSON index?<\/h3>\n            <div class=\"faq-answer\">\n                <p>JSON indexes currently support comparisons via <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">JSON_VALUE<\/code>, along with <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">JSON_PATH_EXISTS<\/code> and <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">JSON_CONTAINS<\/code>. They do not yet support <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">LIKE<\/code> or <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">IS NULL<\/code> predicates.<\/p>\n            <\/div>\n            <\/section>\n","protected":false},"excerpt":{"rendered":"<p>SQL Server 2025 introduces native JSON indexing via CREATE JSON INDEX. Learn how it works, when to use it, and its current preview-stage limitations.&hellip;<\/p>\n","protected":false},"author":346483,"featured_media":107923,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143523,53,143524,143531],"tags":[4168,4170,4880,4150,4151,4252],"coauthors":[159368],"class_list":["post-112335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-featured","category-sql-server","category-t-sql-programming-sql-server","tag-database","tag-database-administration","tag-json","tag-sql","tag-sql-server","tag-t-sql-programming"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/346483"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=112335"}],"version-history":[{"count":5,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112335\/revisions"}],"predecessor-version":[{"id":112377,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112335\/revisions\/112377"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/107923"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=112335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=112335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=112335"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=112335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}