{"id":1036,"date":"2012-07-21T17:01:14","date_gmt":"2012-07-21T21:01:14","guid":{"rendered":"http:\/\/sqlity.net\/en\/?p=1036"},"modified":"2014-11-13T13:54:38","modified_gmt":"2014-11-13T18:54:38","slug":"comparing-system-objects-sql-server-2012-sql-server-2008r2","status":"publish","type":"post","link":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/","title":{"rendered":"Comparing System Objects between SQL Server 2012 and SQL Server 2008R2"},"content":{"rendered":"<div>\n<h3>Introduction<\/h3>\n<p>\nEarlier today I was looking for a way to find changes between system objects in SQL Server 2008R2 and SQL Server 2012. To solve this quest, I spent a little bit of time to write a query to show all system objects that have changed. I am publishing the result of that exercise here for you to use.\n<\/p>\n<h3>The Query<\/h3>\n<p>\nThe query looks at <span class=\"tt\">master.sys.all_objects<\/span> in both instances using a linked server. It joins to <span class=\"tt\">sys.all_columns<\/span> and to <span class=\"tt\">sys.all_parameteres<\/span> to get the complete list of columns and parameters for each object. It also joins to <span class=\"tt\">sys.types<\/span> to get that data type name for each column and each parameter. The column \/ parameter list is left joined to the object list, so objects without either will still be included. The query uses the <span class=\"tt\">is_ms_shipped<\/span> column in <span class=\"tt\">sys.all_objects<\/span> to include only objects that are part of the original  SQL Server installation.\n<\/p>\n<p>\nFor each object schema, object name, column \/ parameter name and data type the query determines if it was found in 2012 or 2008R2 or both. That Information is returned in the first two columns. The query then uses window aggregates to see for each object, if it had a change or addition or drop of at least one column or parameter. If there was a change, all columns and parameters for that object will be included in the final result.\n<\/p>\n<p>\nThe final query can be found below.\n<\/p>\n<div>\n[sql]\nSELECT<br \/>\n  [2012],<br \/>\n  [2008R2],<br \/>\n  schema_name,<br \/>\n  object_name,<br \/>\n  ISNULL(column_name, parameter_name) [column \/ parameter],<br \/>\n  type_desc object_type,<br \/>\n  is_ms_shipped,<br \/>\n  datatype_name,<br \/>\n  max_length,<br \/>\n  precision,<br \/>\n  scale,<br \/>\n  [2012 pos],<br \/>\n  [2008R2 pos]\nFROM<br \/>\n(<br \/>\n  SELECT<br \/>\n    *,<br \/>\n    COUNT(1) OVER(PARTITION BY schema_name, object_name) cp_count,<br \/>\n    COUNT([2012]) OVER(PARTITION BY schema_name, object_name) cp12_count,<br \/>\n    COUNT([2008R2]) OVER(PARTITION BY schema_name, object_name) cpr2_count<br \/>\n  FROM<br \/>\n  (<br \/>\n    SELECT<br \/>\n      CASE WHEN X12.object_name IS NOT NULL THEN '2012' END [2012],<br \/>\n      CASE WHEN XR2.object_name IS NOT NULL THEN '2008R2' END [2008R2],<br \/>\n      ISNULL(X12.schema_name,XR2.schema_name) schema_name,<br \/>\n      ISNULL(X12.object_name,XR2.object_name) object_name,<br \/>\n      ISNULL(X12.column_name,XR2.column_name) column_name,<br \/>\n      ISNULL(X12.parameter_name,XR2.parameter_name) parameter_name,<br \/>\n      ISNULL(X12.type_desc,XR2.type_desc) type_desc,<br \/>\n      ISNULL(X12.is_ms_shipped,XR2.is_ms_shipped) is_ms_shipped,<br \/>\n      ISNULL(X12.column_id, X12.parameter_id) [2012 pos],<br \/>\n      ISNULL(XR2.column_id, XR2.parameter_id) [2008R2 pos],<br \/>\n      ISNULL(X12.type_name,XR2.type_name) datatype_name,<br \/>\n      ISNULL(X12.max_length,XR2.max_length) max_length,<br \/>\n      ISNULL(X12.precision, XR2.precision) precision,<br \/>\n      ISNULL(X12.scale, XR2.scale) scale,<br \/>\n      ISNULL(1000000+ISNULL(x12.column_id,XR2.column_id),ISNULL(x12.parameter_id,XR2.parameter_id)) sort_order<br \/>\n    FROM<br \/>\n    (<br \/>\n      SELECT s.name schema_name, o.name object_name, cp.column_name, cp.parameter_name, o.type_desc, o.is_ms_shipped,<br \/>\n             cp.column_id, cp.parameter_id, cp.type_name, cp.max_length, cp.precision, cp.scale<br \/>\n      FROM DEV_2012.master.sys.all_objects o<br \/>\n      JOIN DEV_2012.master.sys.schemas s<br \/>\n      ON o.schema_id = s.schema_id<br \/>\n      LEFT JOIN<br \/>\n      (<br \/>\n        SELECT ISNULL(c.object_id,p.object_id) object_id,c.name column_name, p.name parameter_name, c.column_id, p.parameter_id,<br \/>\n               ISNULL(c.type_name,p.type_name) type_name, ISNULL(c.max_length,p.max_length) max_length,<br \/>\n               ISNULL(c.precision, p.precision) precision, ISNULL(c.scale, p.scale) scale<br \/>\n        FROM<br \/>\n        (<br \/>\n          SELECT c.object_id,c.column_id,c.name,t.name type_name,c.max_length,c.scale,c.precision<br \/>\n          FROM DEV_2012.master.sys.all_columns c<br \/>\n          JOIN DEV_2012.master.sys.types t<br \/>\n          ON c.user_type_id = t.user_type_id<br \/>\n        )c<br \/>\n        FULL OUTER JOIN<br \/>\n        (<br \/>\n          SELECT p.object_id,p.parameter_id,p.name,t.name type_name,p.max_length,p.scale,p.precision<br \/>\n          FROM DEV_2012.master.sys.all_parameters p<br \/>\n          JOIN DEV_2012.master.sys.types t<br \/>\n          ON p.user_type_id = t.user_type_id<br \/>\n        )p<br \/>\n        ON 1=2 --&gt;UNION ALL<br \/>\n      )cp<br \/>\n      ON o.object_id = cp.object_id<br \/>\n    )X12<br \/>\n    FULL OUTER JOIN<br \/>\n    (<br \/>\n      SELECT s.name schema_name, o.name object_name, cp.column_name, cp.parameter_name, o.type_desc, o.is_ms_shipped,<br \/>\n             cp.column_id, cp.parameter_id, cp.type_name, cp.max_length, cp.precision, cp.scale<br \/>\n      FROM DEV_R2.master.sys.all_objects o<br \/>\n      JOIN DEV_R2.master.sys.schemas s<br \/>\n      ON o.schema_id = s.schema_id<br \/>\n      LEFT JOIN<br \/>\n      (<br \/>\n        SELECT ISNULL(c.object_id,p.object_id) object_id,c.name column_name, p.name parameter_name, c.column_id, p.parameter_id,<br \/>\n               ISNULL(c.type_name,p.type_name) type_name, ISNULL(c.max_length,p.max_length) max_length,<br \/>\n               ISNULL(c.precision, p.precision) precision, ISNULL(c.scale, p.scale) scale<br \/>\n        FROM<br \/>\n        (<br \/>\n          SELECT c.object_id,c.column_id,c.name,t.name type_name,c.max_length,c.scale,c.precision<br \/>\n          FROM DEV_R2.master.sys.all_columns c<br \/>\n          JOIN DEV_R2.master.sys.types t<br \/>\n          ON c.user_type_id = t.user_type_id<br \/>\n        )c<br \/>\n        FULL OUTER JOIN<br \/>\n        (<br \/>\n          SELECT p.object_id,p.parameter_id,p.name,t.name type_name,p.max_length,p.scale,p.precision<br \/>\n          FROM DEV_R2.master.sys.all_parameters p<br \/>\n          JOIN DEV_R2.master.sys.types t<br \/>\n          ON p.user_type_id = t.user_type_id<br \/>\n        )p<br \/>\n        ON 1=2 --&gt;UNION ALL<br \/>\n      )cp<br \/>\n      ON o.object_id = cp.object_id<br \/>\n    )XR2<br \/>\n    ON X12.object_name = XR2.object_name<br \/>\n    AND X12.schema_name = XR2.schema_name<br \/>\n    AND ISNULL(X12.column_name,'') = ISNULL(XR2.column_name,'')<br \/>\n    AND ISNULL(X12.parameter_name,'') = ISNULL(XR2.parameter_name,'')<br \/>\n    AND ISNULL(X12.type_name,'') = ISNULL(XR2.type_name,'')<br \/>\n    AND ISNULL(X12.max_length,0) = ISNULL(XR2.max_length,0)<br \/>\n    AND ISNULL(X12.precision,0) = ISNULL(XR2.precision,0)<br \/>\n    AND ISNULL(X12.scale,0) = ISNULL(XR2.scale,0)<br \/>\n    WHERE 1=1<br \/>\n    --AND (X12.object_name IS NULL OR XR2.object_name IS NULL)<br \/>\n    AND ISNULL(X12.is_ms_shipped,XR2.is_ms_shipped) = 1<br \/>\n  )X<br \/>\n  WHERE X.type_desc != 'SYSTEM_TABLE'<br \/>\n)X<br \/>\nWHERE cp_count != cp12_count OR cp_count != cpr2_count<br \/>\nORDER BY type_desc, object_name, schema_name, sort_order;<br \/>\n[\/sql]\n<\/div>\n<p>\nThe query executes on 2012 and 2008R2. It uses four-part names to access the master database of a 2008R2 and a 2012 instance. To run the query in your system you have to setup appropriate linked servers. You can use the following code as a starting point for that:\n<\/p>\n<div>\n[sql]\nEXEC master.dbo.sp_addlinkedserver @server = N'DEV_R2', @srvproduct=N'SQL Server'<br \/>\nEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'DEV_R2',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL<br \/>\n[\/sql]\n<\/div>\n<p>\n<span class=\"tt\">@useself=N'true'<\/span> means that the current login information is used to try to connect to that linked server.\n<\/p>\n<h3>Conclusion<\/h3>\n<p>\nThere are several exciting changes in the system objects in 2012. They range from more descriptive column names to entirely new DMVs. Have fun running your own investigation.\n<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\nThis post shows a way to compare the system objects between a SQL Server 2008R2 and a SQL Server 2012 instance.\n<\/p>\n<p> <a href=\"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/\">[more&#8230;]<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[5,24],"tags":[],"class_list":["post-1036","post","type-post","status-publish","format-standard","hentry","category-general","category-sql-server-2012"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Comparing System Objects between SQL 2012 and SQL 2008R2<\/title>\n<meta name=\"description\" content=\"This post shows a way to compare the system objects between a SQL Server 2008R2 and a SQL Server 2012 instance.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comparing System Objects between SQL 2012 and SQL 2008R2\" \/>\n<meta property=\"og:description\" content=\"This post shows a way to compare the system objects between a SQL Server 2008R2 and a SQL Server 2012 instance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/\" \/>\n<meta property=\"og:site_name\" content=\"sqlity.net\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/sqlity.net\" \/>\n<meta property=\"article:published_time\" content=\"2012-07-21T21:01:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-11-13T18:54:38+00:00\" \/>\n<meta name=\"author\" content=\"Sebastian Meine\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sqlity\" \/>\n<meta name=\"twitter:site\" content=\"@sqlity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sebastian Meine\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/\"},\"author\":{\"name\":\"Sebastian Meine\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\"},\"headline\":\"Comparing System Objects between SQL Server 2012 and SQL Server 2008R2\",\"datePublished\":\"2012-07-21T21:01:14+00:00\",\"dateModified\":\"2014-11-13T18:54:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/\"},\"wordCount\":1174,\"commentCount\":0,\"articleSection\":[\"General\",\"SQL Server 2012\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/\",\"url\":\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/\",\"name\":\"Comparing System Objects between SQL 2012 and SQL 2008R2\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#website\"},\"datePublished\":\"2012-07-21T21:01:14+00:00\",\"dateModified\":\"2014-11-13T18:54:38+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\"},\"description\":\"This post shows a way to compare the system objects between a SQL Server 2008R2 and a SQL Server 2012 instance.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/1036\\\/comparing-system-objects-sql-server-2012-sql-server-2008r2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sqlity.net\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comparing System Objects between SQL Server 2012 and SQL Server 2008R2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/sqlity.net\\\/en\\\/\",\"name\":\"sqlity.net\",\"description\":\"Quality for SQL\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sqlity.net\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\",\"name\":\"Sebastian Meine\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g\",\"caption\":\"Sebastian Meine\"},\"sameAs\":[\"http:\\\/\\\/sqlity.net\",\"https:\\\/\\\/x.com\\\/sqlity\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comparing System Objects between SQL 2012 and SQL 2008R2","description":"This post shows a way to compare the system objects between a SQL Server 2008R2 and a SQL Server 2012 instance.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/","og_locale":"en_US","og_type":"article","og_title":"Comparing System Objects between SQL 2012 and SQL 2008R2","og_description":"This post shows a way to compare the system objects between a SQL Server 2008R2 and a SQL Server 2012 instance.","og_url":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/","og_site_name":"sqlity.net","article_publisher":"https:\/\/www.facebook.com\/sqlity.net","article_published_time":"2012-07-21T21:01:14+00:00","article_modified_time":"2014-11-13T18:54:38+00:00","author":"Sebastian Meine","twitter_card":"summary_large_image","twitter_creator":"@sqlity","twitter_site":"@sqlity","twitter_misc":{"Written by":"Sebastian Meine","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/#article","isPartOf":{"@id":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/"},"author":{"name":"Sebastian Meine","@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c"},"headline":"Comparing System Objects between SQL Server 2012 and SQL Server 2008R2","datePublished":"2012-07-21T21:01:14+00:00","dateModified":"2014-11-13T18:54:38+00:00","mainEntityOfPage":{"@id":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/"},"wordCount":1174,"commentCount":0,"articleSection":["General","SQL Server 2012"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/","url":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/","name":"Comparing System Objects between SQL 2012 and SQL 2008R2","isPartOf":{"@id":"https:\/\/sqlity.net\/en\/#website"},"datePublished":"2012-07-21T21:01:14+00:00","dateModified":"2014-11-13T18:54:38+00:00","author":{"@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c"},"description":"This post shows a way to compare the system objects between a SQL Server 2008R2 and a SQL Server 2012 instance.","breadcrumb":{"@id":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/sqlity.net\/en\/1036\/comparing-system-objects-sql-server-2012-sql-server-2008r2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sqlity.net\/en\/"},{"@type":"ListItem","position":2,"name":"Comparing System Objects between SQL Server 2012 and SQL Server 2008R2"}]},{"@type":"WebSite","@id":"https:\/\/sqlity.net\/en\/#website","url":"https:\/\/sqlity.net\/en\/","name":"sqlity.net","description":"Quality for SQL","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sqlity.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c","name":"Sebastian Meine","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g","caption":"Sebastian Meine"},"sameAs":["http:\/\/sqlity.net","https:\/\/x.com\/sqlity"]}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2wXuw-gI","jetpack-related-posts":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts\/1036","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/comments?post=1036"}],"version-history":[{"count":0,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts\/1036\/revisions"}],"wp:attachment":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/media?parent=1036"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/categories?post=1036"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/tags?post=1036"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}