{"id":108448,"date":"2026-03-09T14:03:00","date_gmt":"2026-03-09T14:03:00","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=108448"},"modified":"2026-02-17T16:27:50","modified_gmt":"2026-02-17T16:27:50","slug":"identity-vs-sequence-in-sql-server-which-should-you-use","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/identity-vs-sequence-in-sql-server-which-should-you-use\/","title":{"rendered":"IDENTITY vs SEQUENCE in SQL Server &#8211; which should you use?"},"content":{"rendered":"\n<p>Auto-generated numeric keys are everywhere in relational databases. In <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL Server<\/a>, two features dominate this space:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/learn\/working-with-sql-server-identity-columns\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>IDENTITY<\/code>\u00a0columns<\/a><br><\/li>\n\n\n\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/learn\/introduction-to-sql-server-sequence-objects\/\" target=\"_blank\" rel=\"noreferrer noopener\"><code>SEQUENCE<\/code>\u00a0objects<\/a><\/li>\n<\/ul>\n<\/div>\n\n\n<p>Both generate numbers. Both are fast. Both are widely used. Today, though, <code>IDENTITY<\/code> columns are by far the most common &#8211; yet in our client work, we tend to use <code>SEQUENCE<\/code> objects almost exclusively. Everything I can do with an <code>IDENTITY<\/code> column, I can also do with a <code>SEQUENCE<\/code> object, and we find them more flexible.<\/p>\n\n\n\n<p>As a simple example, if you\u2019ve ever tried to perform a <code>SET IDENTITY_INSERT ON<\/code> across a <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/how-to-create-a-sql-server-linked-server-to-oracle-26ai-free\/\" target=\"_blank\" rel=\"noreferrer noopener\">linked server<\/a>, you\u2019d know this doesn\u2019t work. With <code>SEQUENCE<\/code>, I never need to do this type of operation.<\/p>\n\n\n\n<p>Choosing between these two matters, because they behave differently in ways that affect correctness, scalability, and maintainability.<\/p>\n\n\n\n<p>This guide explains how\u00a0<code>IDENTITY<\/code>\u00a0columns and\u00a0<code>SEQUENCE<\/code>\u00a0objects differ in SQL Server, and how you might decide which one is appropriate for a given design.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-an-identity-column-in-sql-server\">What is an IDENTITY column in SQL Server?<\/h2>\n\n\n\n<p>An\u00a0<code>IDENTITY<\/code>\u00a0column in SQL Server is a table-level property that automatically generates a value when a row is inserted:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \" >CREATE TABLE sales.orders\n(\n    order_id INT NOT NULL IDENTITY(1,1) \n        CONSTRAINT PK_sales_orders PRIMARY KEY,\n    order_date DATE NOT NULL\n);\n<\/pre><\/div>\n\n\n\n<p>Key characteristics:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Defined inside a table<br><\/li>\n\n\n\n<li>Values are generated at insert time<br><\/li>\n\n\n\n<li>Tightly coupled to that table<br><\/li>\n\n\n\n<li>Automatically incremented<\/li>\n<\/ul>\n<\/div>\n\n\n<p>Once created, the <code>IDENTITY<\/code> behavior is largely implicit. <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/learn\/working-with-the-insert-statement-in-sql-server\/\">Inserts occur<\/a> and values are generated automatically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-a-sequence-column-in-sql-server\">What is a SEQUENCE column in SQL Server?<\/h2>\n\n\n\n<p>A\u00a0<code>SEQUENCE<\/code>\u00a0object is a standalone database object that generates numbers on demand:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \" >CREATE SEQUENCE sales.order_id\n    START WITH 1\n    INCREMENT BY 1;\n<\/pre><\/div>\n\n\n\n<p>Used explicitly:<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:tsql decode:true \" >INSERT INTO sales.orders (order_id, order_date)\n\nVALUES (NEXT VALUE FOR sales.order_id, SYSDATETIME());<\/pre><\/div>\n\n\n\n<p>Key characteristics:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Independent database object<br><\/li>\n\n\n\n<li>Values are requested explicitly<br><\/li>\n\n\n\n<li>Can be shared across tables<br><\/li>\n\n\n\n<li>Behavior is fully configurable<\/li>\n<\/ul>\n<\/div>\n\n\n<p>A <code>SEQUENCE<\/code> behaves more like a service than a column property. And importantly, if you want to override them because you&#8217;re moving data around, it\u2019s easy.<\/p>\n\n\n\n<section id=\"my-first-block-block_0a0022f3ef1c04c3b5c1c5a4eafa9aff\" 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\">Learn more &amp; try for free<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-identity-vs-sequence-ownership-and-coupling\">IDENTITY vs SEQUENCE: Ownership and coupling<\/h2>\n\n\n\n<p>Ownership and coupling is the most fundamental difference between <code>IDENTITY<\/code> and <code>SEQUENCE<\/code> in SQL Server.<\/p>\n\n\n\n<p><code>IDENTITY<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Belongs to a single table<br><\/li>\n\n\n\n<li>Cannot be shared<br><\/li>\n\n\n\n<li>Cannot be reused elsewhere<br><\/li>\n\n\n\n<li>Tightly bound to the table lifecycle<\/li>\n<\/ul>\n<\/div>\n\n\n<p><code>SEQUENCE<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Independent object<br><\/li>\n\n\n\n<li>Can be used by multiple tables<br><\/li>\n\n\n\n<li>Can be referenced by code, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/blogs\/for-the-love-of-stored-procedures\/\" target=\"_blank\" rel=\"noreferrer noopener\">procedures<\/a>, and <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/database-administration-sql-server\/sql-server-triggers-good-scary\/\" target=\"_blank\" rel=\"noreferrer noopener\">triggers<\/a><br><\/li>\n\n\n\n<li>Can outlive tables<br><\/li>\n\n\n\n<li>Design implication<\/li>\n<\/ul>\n<\/div>\n\n\n<p>If the number belongs to the table,\u00a0<code>IDENTITY<\/code>\u00a0often seems to fit naturally. If the number belongs to the business process, a\u00a0<code>SEQUENCE<\/code>\u00a0is often a better abstraction.<\/p>\n\n\n\n<p>As an example, imagine I had a system with tables for CarBookings, HotelBookings, FlightBookings, etc. and I wanted to use a single ID that spanned all these tables. A <code>SEQUENCE<\/code> object makes this easy, as just one could be the ID generator for all the tables.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-identity-vs-sequence-control-and-predictability\">IDENTITY vs SEQUENCE: Control and predictability<\/h2>\n\n\n\n<p><code>IDENTITY<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Generated automatically<br><\/li>\n\n\n\n<li>Limited control over when values are consumed<br><\/li>\n\n\n\n<li>Gaps are normal and unavoidable<br><\/li>\n\n\n\n<li>Reseeding affects the entire table<\/li>\n<\/ul>\n<\/div>\n\n\n<p><code>SEQUENCE<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Explicit value requests<br><\/li>\n\n\n\n<li>Can generate values before insert<br><\/li>\n\n\n\n<li>Can be cached, cycled, and incremented flexibly<br><\/li>\n\n\n\n<li>Can be reset or altered independently<\/li>\n<\/ul>\n<\/div>\n\n\n<p>Neither option guarantees gap-free numbering. A <code>SEQUENCE<\/code> simply provides more control over when gaps occur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-identity-vs-sequence-multi-row-and-batch-inserts\">IDENTITY vs SEQUENCE: Multi-row and batch inserts<\/h2>\n\n\n\n<p>Here, behavior between the two diverges in subtle but important ways:<\/p>\n\n\n\n<p><code>IDENTITY<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Values assigned during insert<br><\/li>\n\n\n\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/learn\/ordering-a-result-set-in-sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">Ordering<\/a> may not be obvious under parallel plans<br><\/li>\n\n\n\n<li>Assignment order is harder to predict in bulk loads<\/li>\n<\/ul>\n<\/div>\n\n\n<p><code>SEQUENCE<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Values requested explicitly<br><\/li>\n\n\n\n<li>Values can be generated ahead of time<br><\/li>\n\n\n\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/user-defined-functions\/deterministic-and-nondeterministic-functions?view=sql-server-ver17\" target=\"_blank\" rel=\"noreferrer noopener\">Deterministic<\/a> ordering is easier to achieve when required<\/li>\n<\/ul>\n<\/div>\n\n\n<p>For systems that rely on explicit ordering or pre-allocation, sequences offer clearer semantics.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-identity-vs-sequence-replication-synchronization-distribution\">IDENTITY vs SEQUENCE: Replication, synchronization, distribution<\/h2>\n\n\n\n<p><code>IDENTITY<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Historically difficult with <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/database-administration-sql-server\/sql-server-replication-crib-sheet\/\" target=\"_blank\" rel=\"noreferrer noopener\">replication<\/a><br><\/li>\n\n\n\n<li>Requires identity ranges or careful configuration<br><\/li>\n\n\n\n<li>Risk of collisions if mismanaged<\/li>\n<\/ul>\n<\/div>\n\n\n<p><code>SEQUENCE<\/code><\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Designed for distributed scenarios<br><\/li>\n\n\n\n<li>Supports <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/sql-server\/performance-sql-server\/the-importance-of-caching\/\" target=\"_blank\" rel=\"noreferrer noopener\">caching<\/a> to reduce contention<br><\/li>\n\n\n\n<li>Easier to coordinate across nodes or services<\/li>\n<\/ul>\n<\/div>\n\n\n<p>This is one of the primary reasons <code>SEQUENCE<\/code> objects exist. They solve problems that <code>IDENTITY<\/code> columns were never designed to handle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-identity-vs-sequence-inserts-from-multiple-code-paths\">IDENTITY vs SEQUENCE: Inserts from multiple code paths<\/h2>\n\n\n\n<p>Common insert paths include:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Direct inserts<br><\/li>\n\n\n\n<li>Stored procedures<br><\/li>\n\n\n\n<li>Triggers<br><\/li>\n\n\n\n<li><a href=\"https:\/\/aws.amazon.com\/what-is\/etl\/\" target=\"_blank\" rel=\"noreferrer noopener\">Extract, Transform, Load (ETL)<\/a> processes<br><\/li>\n\n\n\n<li>Service-based inserts<\/li>\n<\/ul>\n<\/div>\n\n\n<p>With <code>IDENTITY<\/code>, they are:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Always generated implicitly<br><\/li>\n\n\n\n<li>Harder to intercept or customize<br><\/li>\n\n\n\n<li>Requires special syntax to override (<code>SET IDENTITY_INSERT<\/code>)<\/li>\n<\/ul>\n<\/div>\n\n\n<p>And with <code>SEQUENCE<\/code>, they:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Can be used anywhere<br><\/li>\n\n\n\n<li>Can be called conditionally<br><\/li>\n\n\n\n<li>Can be reused consistently across paths<\/li>\n<\/ul>\n<\/div>\n\n\n<p>When multiple systems need to generate compatible identifiers, a <code>SEQUENCE<\/code> object provides a cleaner contract.<\/p>\n\n\n\n<section id=\"my-first-block-block_d053420f0366858e73736a07ae7f2274\" 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\">Enjoying this article? 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\">Subscribe now<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-identity-vs-sequence-performance-and-scalability\">IDENTITY vs SEQUENCE: Performance and scalability<\/h2>\n\n\n\n<p>In most real-world systems, both options scale well and are extremely fast. Neither should be chosen solely for performance reasons<\/p>\n\n\n\n<p>At very high insert rates:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>Sequences with caching can reduce contention<br><\/li>\n\n\n\n<li>By default, identity contention can appear in extreme write-heavy workloads<\/li>\n<\/ul>\n<\/div>\n\n\n<p>These differences matter at scale, but they are rarely the primary design driver.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-what-can-you-control-for-identity-in-modern-sql-server\">What can you control for IDENTITY in modern SQL Server?<\/h4>\n\n\n\n<p>SQL Server 2017+ lets you turn identity value caching <code>ON<\/code> or <code>OFF<\/code> per database using the database-scoped configuration <code>IDENTITY_CACHE<\/code>. You can also disable <code>IDENTITY<\/code> pre-allocation and instance-wide using trace flag 272 (global scope).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-what-you-cannot-control-for-identity-in-sql-server\">What you CANNOT control for IDENTITY in SQL Server<\/h4>\n\n\n\n<p>You cannot set the cache size for an <code>IDENTITY<\/code> column. With <code>IDENTITY<\/code>, it\u2019s essentially <code>ON\/OFF<\/code>, not\u00a0<em>tune the cache amount.<\/em>\u00a0(The internal pre-allocation amount varies by version\/type\/implementation, but it\u2019s not user-configurable.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-identity-vs-sequence-common-anti-patterns\">IDENTITY vs SEQUENCE: Common anti-patterns<\/h2>\n\n\n\n<p>Using <code>IDENTITY<\/code> as a business identifier:<\/p>\n\n\n\n<p>Ideally, you would avoid coupling business meaning to storage behavior, which is brittle and hard to change.<\/p>\n\n\n\n<p>Assuming either <code>IDENTITY<\/code> or <code>SEQUENCE<\/code> is gap-free:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.red-gate.com\/simple-talk\/blogs\/friendly-deletes-in-sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">Deletes<\/a>, <a href=\"https:\/\/www.red-gate.com\/simple-talk\/podcasts\/rollback-vs-roll-forward-in-databases\/\" target=\"_blank\" rel=\"noreferrer noopener\">rollbacks<\/a>, restarts, and crashes all introduce gaps.<\/p>\n\n\n\n<p>If gap-free numbering is required, neither\u00a0<code>IDENTITY<\/code>\u00a0or\u00a0<code>SEQUENCE<\/code>\u00a0is sufficient.<\/p>\n\n\n<div class=\"block-core-list\">\n<ol class=\"wp-block-list\"><\/ol>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-choose-identity-or-sequence-in-sql-server\">How to choose IDENTITY or SEQUENCE in SQL Server<\/h2>\n\n\n\n<p>Choose <code>IDENTITY<\/code> when:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>The value is purely a surrogate key<br><\/li>\n\n\n\n<li>The value belongs only to the table<br><\/li>\n\n\n\n<li>Minimal configuration is desired<br><\/li>\n\n\n\n<li>Gaps and reuse are not a concern<\/li>\n<\/ul>\n<\/div>\n\n\n<p>Choose <code>SEQUENCE<\/code> when:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li>The value represents a business concept<br><\/li>\n\n\n\n<li>Multiple tables or processes need numbers<br><\/li>\n\n\n\n<li>Explicit control over generation is required<br><\/li>\n\n\n\n<li>Reuse, coordination, or distribution matters<br><\/li>\n\n\n\n<li>You need to insert across linked services<br><\/li>\n\n\n\n<li>You are working in more complex environments<\/li>\n<\/ul>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-in-conclusion-identity-vs-sequence-in-sql-server\">In conclusion: IDENTITY vs SEQUENCE in SQL Server<\/h2>\n\n\n\n<p><code>IDENTITY<\/code> columns are simple, convenient, and often sufficient. Despite this, we tend to use <code>SEQUENCE<\/code> objects all the time nowadays. They&#8217;re explicit, flexible, and better suited to complex systems &#8211; ideal for the mixed environments that we often find ourselves working in.<\/p>\n\n\n\n<section id=\"faq\" class=\"faq-block my-5xl\">\n    <h2>FAQs: IDENTITY vs SEQUENCE in SQL Server<\/h2>\n\n                        <h3 class=\"mt-4xl\">1. What\u2019s the difference between IDENTITY and SEQUENCE in SQL Server?<\/h3>\n            <div class=\"faq-answer\">\n                <p data-start=\"131\" data-end=\"340\"><code>IDENTITY<\/code> is a table property that auto-generates values on insert. <code>SEQUENCE<\/code> is a standalone object that generates numbers on demand and can be shared.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">2. Which should I use for primary keys in SQL Server?<\/h3>\n            <div class=\"faq-answer\">\n                <p data-start=\"342\" data-end=\"516\">Use <code>IDENTITY<\/code> for simple, table-only surrogate keys. Use <code>SEQUENCE<\/code> when values must be shared, coordinated, or controlled explicitly.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">3. Are IDENTITY or SEQUENCE gap-free in SQL Server?<\/h3>\n            <div class=\"faq-answer\">\n                <p data-start=\"518\" data-end=\"624\">No. Both can produce gaps due to rollbacks, crashes, and caching.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">4. Which is better for distributed systems in SQL Server?<\/h3>\n            <div class=\"faq-answer\">\n                <div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"63b0656f-7661-457e-bd68-049e32465c10\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word light markdown-new-styling\">\n<p data-start=\"626\" data-end=\"741\" data-is-last-node=\"\" data-is-only-node=\"\"><code>SEQUENCE<\/code> objects are better suited for multi-table and distributed scenarios.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n            <\/div>\n            <\/section>\n","protected":false},"excerpt":{"rendered":"<p>A practical guide to IDENTITY vs SEQUENCE in SQL Server &#8211; what\u2019s different, what matters, and which to use.&hellip;<\/p>\n","protected":false},"author":346483,"featured_media":108453,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143523,53,143524],"tags":[4168,4150,4151],"coauthors":[159368],"class_list":["post-108448","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-featured","category-sql-server","tag-database","tag-sql","tag-sql-server"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/108448","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=108448"}],"version-history":[{"count":3,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/108448\/revisions"}],"predecessor-version":[{"id":109066,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/108448\/revisions\/109066"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/108453"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=108448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=108448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=108448"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=108448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}