{"id":27530,"date":"2023-08-02T06:30:00","date_gmt":"2023-08-02T04:30:00","guid":{"rendered":"https:\/\/expert-only.com\/?p=27530"},"modified":"2023-10-10T18:26:50","modified_gmt":"2023-10-10T16:26:50","slug":"tabelas-temporais-do-sql-server","status":"publish","type":"post","link":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/","title":{"rendered":"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\" id=\"h-introducao-as-tabelas-temporais-do-sql-server-para-gerir-automaticamente-a-versao-dos-dados\"><strong><em>Introdu\u00e7\u00e3o \u00e0s Tabelas Temporais do SQL Server para gerir automaticamente a vers\u00e3o dos dados. <\/em><\/strong><\/h4>\n\n\n\n<p>As tabelas temporais no SQL Server, tamb\u00e9m conhecidas como tabelas de vers\u00e3o do sistema, s\u00e3o um recurso introduzido no MS SQL Server 2016. Elas fornecem suporte integrado para armazenar dados hist\u00f3ricos relacionados a altera\u00e7\u00f5es feitas nos dados de uma tabela. Esta funcionalidade \u00e9 ben\u00e9fica para fins de auditoria ou an\u00e1lise de dados de neg\u00f3cios, onde \u00e9 crucial entender o estado dos dados em qualquer momento. E tamb\u00e9m para todas as empresas sujeitas a relat\u00f3rios regulat\u00f3rios com obriga\u00e7\u00f5es legais de transpar\u00eancia.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#sintaxe-basica-da-tabela-temporal-ms-sql\" >Sintaxe b\u00e1sica da tabela temporal MS SQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#atualizar-dados-sql-em-tabelas-temporais\" >Atualizar dados SQL em tabelas temporais<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#eliminar-dados-de-tabelas-com-versionamento-de-sistema\" >Eliminar dados de tabelas com versionamento de sistema<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#sintaxe-da-consulta-t-sql-para-verificar-dados-de-tabelas-temporais\" >Sintaxe da consulta T-SQL para verificar dados de tabelas temporais<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#testar-um-dado-temporal-para-ver-como-funciona\" >Testar um dado temporal para ver como funciona<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#modificar-tabelas-existentes-com-versionamento-de-sistema\" >Modificar tabelas existentes com versionamento de sistema<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#eliminar-uma-tabela-com-versao-de-sistema\" >Eliminar uma tabela com vers\u00e3o de sistema<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-sintaxe-basica-da-tabela-temporal-ms-sql\"><span class=\"ez-toc-section\" id=\"sintaxe-basica-da-tabela-temporal-ms-sql\"><\/span>Sintaxe b\u00e1sica da tabela temporal MS SQL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Vamos come\u00e7ar criando uma tabela temporal b\u00e1sica no Transact-SQL. Assim, o c\u00f3digo T-SQL abaixo <strong>cria uma tabela chamada Employee com versionamento de sistema<\/strong>. As colunas <em>SysStartTime<\/em> e <em>SysEndTime<\/em> s\u00e3o usadas para registrar o per\u00edodo de cada linha. Para fazer um pequeno resumo, s\u00e3o necess\u00e1rios 3 elementos adicionais para criar e gerir uma tabela temporal SQL Server: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>SysStartTime<\/em><\/strong> coluna do sistema para marcar o in\u00edcio do per\u00edodo, suporta apenas o tipo de dados DATETIME2.<\/li>\n\n\n\n<li><strong><em>SysEndTime<\/em><\/strong> para marcar o fim, suporta apenas o tipo de dados DATETIME2.<\/li>\n\n\n\n<li>Uma tabela de hist\u00f3rico do sistema, aqui \u00e9 chamada de <strong><em>dbo.EmployeeHistory<\/em><\/strong>, com a mesma estrutura, exceto as chaves.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-a-instrucao-de-criacao-da-tabela-e-especifica\">A instru\u00e7\u00e3o de cria\u00e7\u00e3o da tabela \u00e9 espec\u00edfica<\/h3>\n\n\n\n<p>A defini\u00e7\u00e3o da tabela \u00e9 especial, no entanto, e esse \u00e9 o objetivo, inserir dados em uma tabela com versionamento de sistema \u00e9 semelhante a inserir dados em qualquer outra tabela SQL Server. De fato, <strong>as tabelas com versionamento de sistema, ou seja, tabelas temporais s\u00e3o projetadas para gerir automaticamente a vers\u00e3o dos dados<\/strong>, particularmente \u00fatil para gerir dimens\u00f5es e dimens\u00f5es de mudan\u00e7a lenta, chamadas <a href=\"https:\/\/www.oracle.com\/webfolder\/technetwork\/tutorials\/obe\/db\/10g\/r2\/owb\/owb10gr2_gs\/owb\/lesson3\/slowlychangingdimensions.htm\" target=\"_blank\" rel=\"noreferrer noopener\">SCD<\/a>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CREATE TABLE [Expert-Only].dbo.Employee\n(\n   EmployeeId INT PRIMARY KEY,\n   EmployeeName NVARCHAR(100),\n   Position NVARCHAR(100),\n   Salary DECIMAL(18, 2),\n   SysStartTime  DATETIME2 GENERATED ALWAYS AS ROW START,\n   SysEndTime    DATETIME2 GENERATED ALWAYS AS ROW END,\n   PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime)\n)\nWITH (SYSTEM_VERSIONING = ON (\n   HISTORY_TABLE = dbo.EmployeeHistory)\n);<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-inserir-dados-na-tabela-temporal\">Inserir dados na tabela temporal<\/h3>\n\n\n\n<p>Portanto, esta instru\u00e7\u00e3o b\u00e1sica de <a href=\"https:\/\/expert-only.com\/en\/t-sql\/sql-server-insert-into-from-a-select\/\"><strong>INSERT T-SQL<\/strong><\/a> ir\u00e1 inserir uma nova linha na tabela Employee e atualizar\u00e1 a tabela de hist\u00f3rico associada quando os dados forem alterados.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">INSERT INTO [Expert-Only].dbo.Employee (EmployeeId, EmployeeName, Position, Salary)\nVALUES (1, 'John Doe', 'Developer', 80000);<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"540\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/create-sql-server-temporal-table.jpg\" alt=\"Criar uma tabela temporal com versionamento de sistema SQL Server e inserir dados\" class=\"wp-image-27467\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/create-sql-server-temporal-table.jpg 800w, https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/create-sql-server-temporal-table-300x203.jpg 300w, https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/create-sql-server-temporal-table-768x518.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\"><em>Criar uma tabela temporal com versionamento de sistema SQL Server e inserir dados<\/em><\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-estrutura-da-tabela-de-versao-do-sistema-e-tabela-de-historico\">Estrutura da tabela de vers\u00e3o do sistema e tabela de hist\u00f3rico<\/h3>\n\n\n\n<p>Como voc\u00ea pode ver na imagem abaixo, a tabela <strong><em>Employee<\/em><\/strong> agora possui versionamento de sistema e a tabela <strong><em>EmployeeHistory<\/em><\/strong> est\u00e1 localizada logo atr\u00e1s dela no explorador SSMS. <strong>Ambas as tabelas t\u00eam a mesma estrutura, exceto, \u00e9 claro, as chaves prim\u00e1rias<\/strong>, porque a tabela de hist\u00f3rico precisa armazenar v\u00e1rias vers\u00f5es de linhas com os mesmos IDs. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/sql-server-System-Versioned-and-history-table-structure.jpg\" alt=\"Tabela de hist\u00f3rico sob a tabela com versionamento de sistema \" class=\"wp-image-27474\" style=\"width:439px;height:678px\" width=\"439\" height=\"678\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/sql-server-System-Versioned-and-history-table-structure.jpg 440w, https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/sql-server-System-Versioned-and-history-table-structure-194x300.jpg 194w\" sizes=\"auto, (max-width: 439px) 100vw, 439px\" \/><figcaption class=\"wp-element-caption\"><em>Tabela de hist\u00f3rico sob a tabela com versionamento de sistema <\/em><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-atualizar-dados-sql-em-tabelas-temporais\"><span class=\"ez-toc-section\" id=\"atualizar-dados-sql-em-tabelas-temporais\"><\/span>Atualizar dados SQL em tabelas temporais<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Quando voc\u00ea atualiza um registro em uma tabela com versionamento de sistema, o SQL Server insere automaticamente uma c\u00f3pia da linha antiga na tabela de hist\u00f3rico. Assim, voc\u00ea pode analisar qualquer altera\u00e7\u00e3o passada para entender melhor seus dados. Como resultado, ap\u00f3s executar este comando SQL, a tabela <em>EmployeeHistory <\/em>ter\u00e1 um registro com o sal\u00e1rio antigo. Para ilustrar o conceito, a seguinte consulta dispara uma inser\u00e7\u00e3o com o valor antigo da linha, diretamente dentro da tabela de hist\u00f3rico.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">UPDATE [Expert-Only].dbo.Employee\n   SET Salary = 85000\n   WHERE EmployeeId = 1;\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-eliminar-dados-de-tabelas-com-versionamento-de-sistema\"><span class=\"ez-toc-section\" id=\"eliminar-dados-de-tabelas-com-versionamento-de-sistema\"><\/span>Eliminar dados de tabelas com versionamento de sistema<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Ao excluir registros em uma tabela com versionamento de sistema, os dados n\u00e3o ser\u00e3o removidos completamente. Os registros exclu\u00eddos ser\u00e3o movidos para a tabela de hist\u00f3rico. Ap\u00f3s executar o comando T-SQL abaixo, a tabela <strong><em>EmployeeHistory<\/em><\/strong> ter\u00e1 o registro exclu\u00eddo.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">DELETE FROM Employee\n   WHERE EmployeeId = 1;\n<\/pre>\n\n\n\n<p>Portanto, \u00e9 claro que voc\u00ea precisa estar ciente de qu\u00e3o frequentemente os dados mudam e tamb\u00e9m sobre os volumes de dados para evitar acabar com enormes bases de dados e backups. Voc\u00ea pode ver isso como o mesmo princ\u00edpio da <strong><a href=\"https:\/\/expert-only.com\/en\/ms-dos\/delete-windows-file-using-cmd\/\">Windows<\/a><\/strong> Lixeira, de fato voc\u00ea pode ter v\u00e1rias vers\u00f5es do mesmo arquivo, exclu\u00eddo mas ainda na lixeira, at\u00e9 esvazi\u00e1-la.<\/p>\n\n\n\n<p><strong><em>Uma solu\u00e7\u00e3o para isso \u00e9 implementar um sistema de purga que periodicamente exclua registros antigos da tabela de hist\u00f3rico.<\/em><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-sintaxe-da-consulta-t-sql-para-verificar-dados-de-tabelas-temporais\"><span class=\"ez-toc-section\" id=\"sintaxe-da-consulta-t-sql-para-verificar-dados-de-tabelas-temporais\"><\/span>Sintaxe da consulta T-SQL para verificar dados de tabelas temporais<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>O SQL Server fornece a cl\u00e1usula FOR SYSTEM_TIME para consultar dados de uma tabela com versionamento de sistema. <\/strong>Este comando SQL retornar\u00e1 os dados como estavam no momento especificado. Voc\u00ea pode usar mais detalhes, \u00e9 claro, para ser mais espec\u00edfico. Voc\u00ea pode ir at\u00e9 <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SELECT *\n  FROM Employee\n  FOR SYSTEM_TIME AS OF '2023-10-10';\n\nSELECT *\n  FROM Employee\n  FOR SYSTEM_TIME AS OF '2023-10-10 15:30:45.1234567';\n\n<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-testar-um-dado-temporal-para-ver-como-funciona\"><span class=\"ez-toc-section\" id=\"testar-um-dado-temporal-para-ver-como-funciona\"><\/span>Testar um dado temporal para ver como funciona<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Para fazer um teste mais aprofundado, vamos recapitular todas as a\u00e7\u00f5es realizadas e adicionar uma, nesta ordem, para ver se a tabela acompanha adequadamente nossas altera\u00e7\u00f5es. Entre cada passo, aguarde alguns minutos para melhor visibilidade na tabela de hist\u00f3rico.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Inserir a primeira linha com um sal\u00e1rio de <em>80&#8217;000<\/em> d\u00f3lares (feito na segunda se\u00e7\u00e3o do tutorial)<\/li>\n\n\n\n<li>Atualizar o sal\u00e1rio para <em>85&#8217;000<\/em> d\u00f3lares<\/li>\n\n\n\n<li>Excluir o funcion\u00e1rio da tabela. <\/li>\n\n\n\n<li>Inserir novamente o mesmo funcion\u00e1rio, mas desta vez com um sal\u00e1rio de <em>90&#8217;000<\/em> d\u00f3lares e um cargo de <strong><em>Developer Senior<\/em><\/strong>.<\/li>\n\n\n\n<li>Excluir novamente o funcion\u00e1rio da tabela. <strong><em>N\u00e3o vis\u00edvel na Captura de Ecr\u00e3<\/em><\/strong> mas dispon\u00edvel no c\u00f3digo T-SQL abaixo. <\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">UPDATE [Expert-Only].dbo.Employee\n   SET Salary = 85000\n   WHERE EmployeeId = 1;\n\n-- *** Aguarde alguns minutos *** -- \nDELETE FROM [Expert-Only].dbo.Employee\n   WHERE EmployeeId = 1;\n\n-- *** Aguarde alguns minutos *** -- \nINSERT INTO [Expert-Only].dbo.Employee\n   (EmployeeId, EmployeeName, Position, Salary)\nVALUES (1, 'John Doe', 'Developer Senior', 90000);\n\n-- *** Aguarde alguns minutos *** -- \nDELETE FROM [Expert-Only].dbo.Employee\n   WHERE EmployeeId = 1;\n\nSELECT * FROM dbo.EmployeeHistory;\n\n-- Primeira inser\u00e7\u00e3o\nSELECT * FROM [Expert-Only].dbo.Employee\n  FOR SYSTEM_TIME AS OF '2023-10-10 10:56:00';\n\n-- Atualiza\u00e7\u00e3o para 85000 $\nSELECT * FROM [Expert-Only].dbo.Employee\n  FOR SYSTEM_TIME AS OF '2023-10-10 11:03:00';\n\n-- Segunda inser\u00e7\u00e3o como Developer Senior\nSELECT * FROM [Expert-Only].dbo.Employee\n  FOR SYSTEM_TIME AS OF '2023-10-10 11:06:00';\n<\/pre>\n\n\n\n<p>Em seguida, verifique o resultado usando o SSMS para selecionar o conte\u00fado da tabela de hist\u00f3rico e tamb\u00e9m da tabela Employee em pontos muito espec\u00edficos no tempo. Como resultado, a tabela Employee est\u00e1 agora vazia. As tr\u00eas linhas arquivadas da tabela <em>EmployeeHistory<\/em> est\u00e3o dispon\u00edveis usando uma instru\u00e7\u00e3o SELECT na pr\u00f3pria tabela Employee em 3 pontos diferentes no tempo.  <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"980\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/test-sql-server-temporal-table-with-history-check.jpg\" alt=\"Os dados da tabela de hist\u00f3rico s\u00e3o vis\u00edveis na tabela com vers\u00e3o temporal.\" class=\"wp-image-27478\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/test-sql-server-temporal-table-with-history-check.jpg 741w, https:\/\/expert-only.com\/wp-content\/uploads\/2023\/10\/test-sql-server-temporal-table-with-history-check-227x300.jpg 227w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><figcaption class=\"wp-element-caption\"><em>Os dados da tabela de hist\u00f3rico s\u00e3o vis\u00edveis na tabela com vers\u00e3o temporal.<\/em><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-modificar-tabelas-existentes-com-versionamento-de-sistema\"><span class=\"ez-toc-section\" id=\"modificar-tabelas-existentes-com-versionamento-de-sistema\"><\/span>Modificar tabelas existentes com versionamento de sistema<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Claro, \u00e0 medida que os modelos de dados evoluem na base de dados ao longo do tempo, \u00e9 necess\u00e1rio manter a tabela de hist\u00f3rico quando a tabela versionada muda. Para modificar o esquema de uma tabela com vers\u00e3o de sistema, por exemplo, para adicionar uma nova coluna \u00e0 tabela Empregado, siga estes 3 passos, nesta ordem:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Primeiro, desative a vers\u00e3o do sistema.<\/li>\n\n\n\n<li>Fa\u00e7a as altera\u00e7\u00f5es na tabela temporal.<\/li>\n\n\n\n<li>Depois, ative novamente a vers\u00e3o do sistema.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-eliminar-uma-tabela-com-versao-de-sistema\"><span class=\"ez-toc-section\" id=\"eliminar-uma-tabela-com-versao-de-sistema\"><\/span><strong>Eliminar uma tabela com vers\u00e3o de sistema<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Como \u00e9 um tipo espec\u00edfico de tabela, para elimin\u00e1-la, tamb\u00e9m precisa, neste caso, parar manualmente a vers\u00e3o antes de eliminar a tabela. <strong>Para eliminar uma tabela com vers\u00e3o de sistema sem erro, use a op\u00e7\u00e3o de gera\u00e7\u00e3o de script do SSMS para gerar a instru\u00e7\u00e3o completa.<\/strong> Como pode ver abaixo, realiza 3 opera\u00e7\u00f5es:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Parar a vers\u00e3o.<\/li>\n\n\n\n<li>Eliminar a tabela com vers\u00e3o de sistema.<\/li>\n\n\n\n<li>Eliminar a tabela temporal que cont\u00e9m o hist\u00f3rico.<\/li>\n<\/ol>\n\n\n\n<p>Se tentar eliminar a tabela sem parar a vers\u00e3o, o sistema devolve este erro:<\/p>\n\n\n\n<p>Msg 13552, N\u00edvel 16, Estado 1, Linha 1 <em>A opera\u00e7\u00e3o de elimina\u00e7\u00e3o da tabela falhou em &#8216;Expert-Only.dbo.Employee&#8217; porque n\u00e3o \u00e9 uma opera\u00e7\u00e3o suportada em tabelas temporais com vers\u00e3o de sistema.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-conclusao-sobre-a-configuracao-de-tabelas-temporais-no-sql-server\">Conclus\u00e3o sobre a configura\u00e7\u00e3o de tabelas temporais no SQL Server<\/h3>\n\n\n\n<p>Em conclus\u00e3o, as Tabelas Temporais do SQL Server oferecem uma solu\u00e7\u00e3o integrada para acompanhar as altera\u00e7\u00f5es de dados ao longo do tempo. Elas podem ser valiosas em situa\u00e7\u00f5es onde \u00e9 necess\u00e1rio uma auditoria ou an\u00e1lise de dados. Para cen\u00e1rios reais de empresa, quando tinha de fazer todos os passos de arquivo com c\u00f3digo personalizado ou SCD, era complexo e pesado de manter. Usar esta funcionalidade de tabela com vers\u00e3o de sistema torna-a muito mais simples de implementar.<\/p>\n\n\n\n<p>Ao compreender como criar, inserir, atualizar, eliminar e consultar dados destas tabelas, pode-se tirar partido desta poderosa funcionalidade no MS SQL Server. Para aprofundar e descobrir mais casos de uso para tabelas temporais, um exemplo t\u00edpico da vida real \u00e9 quando se carrega uma tabela de dimens\u00e3o de um armaz\u00e9m de dados utilizando um pacote SSIS.<\/p>\n\n\n\n<p>Outros tutoriais sobre os mesmos t\u00f3picos que podem interessar-lhe \u00e9 <a href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/funcoes-json-do-sql-server\/\"><strong>como gerir o tipo de dados JSON utilizando fun\u00e7\u00f5es nativas do SQL Server<\/strong><\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-tutoriais-sql-e-ti wp-block-embed-tutoriais-sql-e-ti\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"zJZfJ8k4EC\"><a href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/funcoes-json-do-sql-server\/\">Como utilizar as fun\u00e7\u00f5es JSON do SQL Server?<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Como utilizar as fun\u00e7\u00f5es JSON do SQL Server?&#8221; &#8212; Tutoriais SQL e TI\" src=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/funcoes-json-do-sql-server\/embed\/#?secret=cy1QWthz4u#?secret=zJZfJ8k4EC\" data-secret=\"zJZfJ8k4EC\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Para obter informa\u00e7\u00f5es mais detalhadas sobre como trabalhar com Tabelas Temporais no SQL Server, consulte a documenta\u00e7\u00e3o oficial da <strong>Microsoft<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Introdu\u00e7\u00e3o \u00e0s Tabelas Temporais do SQL Server para gerir automaticamente a vers\u00e3o dos dados. As tabelas temporais no SQL Server, tamb\u00e9m conhecidas como tabelas de vers\u00e3o do sistema, s\u00e3o um recurso introduzido no MS SQL Server 2016. Elas fornecem <a class=\"mh-excerpt-more\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\" title=\"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es\">&#8230;<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":10620,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[456],"tags":[],"class_list":{"0":"post-27530","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-t-sql"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.7 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como utilizar as tabelas temporais do SQL Server?<\/title>\n<meta name=\"description\" content=\"Utilize tabelas temporais do SQL Server para versionar dados e controlar facilmente as elimina\u00e7\u00f5es, actualiza\u00e7\u00f5es e inser\u00e7\u00f5es.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es\" \/>\n<meta property=\"og:description\" content=\"Utilize tabelas temporais do SQL Server para versionar dados e controlar facilmente as elimina\u00e7\u00f5es, actualiza\u00e7\u00f5es e inser\u00e7\u00f5es.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutoriais SQL e TI\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ExpertOnlyCom\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-02T04:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-10T16:26:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Expert-Only\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@expert_only\" \/>\n<meta name=\"twitter:site\" content=\"@expert_only\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Expert-Only\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\"},\"author\":{\"name\":\"Expert-Only\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#\/schema\/person\/406a9576b52944f018739a42046873ef\"},\"headline\":\"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es\",\"datePublished\":\"2023-08-02T04:30:00+00:00\",\"dateModified\":\"2023-10-10T16:26:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\"},\"wordCount\":1374,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg\",\"articleSection\":[\"T-SQL\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\",\"url\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\",\"name\":\"Como utilizar as tabelas temporais do SQL Server?\",\"isPartOf\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg\",\"datePublished\":\"2023-08-02T04:30:00+00:00\",\"dateModified\":\"2023-10-10T16:26:50+00:00\",\"description\":\"Utilize tabelas temporais do SQL Server para versionar dados e controlar facilmente as elimina\u00e7\u00f5es, actualiza\u00e7\u00f5es e inser\u00e7\u00f5es.\",\"breadcrumb\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage\",\"url\":\"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg\",\"contentUrl\":\"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"pt\",\"item\":\"https:\/\/expert-only.com\/pt-pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#website\",\"url\":\"https:\/\/expert-only.com\/pt-pt\/\",\"name\":\"Tutoriais SQL e TI\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/expert-only.com\/pt-pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#organization\",\"name\":\"Expert-Only\",\"url\":\"https:\/\/expert-only.com\/pt-pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/09\/cropped-logo_Expert-Only.jpg\",\"contentUrl\":\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/09\/cropped-logo_Expert-Only.jpg\",\"width\":381,\"height\":174,\"caption\":\"Expert-Only\"},\"image\":{\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/ExpertOnlyCom\/\",\"https:\/\/x.com\/expert_only\",\"https:\/\/www.youtube.com\/channel\/UCMS5sR_FwAetB0FmciNvUaA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#\/schema\/person\/406a9576b52944f018739a42046873ef\",\"name\":\"Expert-Only\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/expert-only.com\/pt-pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/084b15660763ff5b13bb60b2f52f97bb?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/084b15660763ff5b13bb60b2f52f97bb?s=96&d=identicon&r=g\",\"caption\":\"Expert-Only\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como utilizar as tabelas temporais do SQL Server?","description":"Utilize tabelas temporais do SQL Server para versionar dados e controlar facilmente as elimina\u00e7\u00f5es, actualiza\u00e7\u00f5es e inser\u00e7\u00f5es.","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:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/","og_locale":"pt_PT","og_type":"article","og_title":"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es","og_description":"Utilize tabelas temporais do SQL Server para versionar dados e controlar facilmente as elimina\u00e7\u00f5es, actualiza\u00e7\u00f5es e inser\u00e7\u00f5es.","og_url":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/","og_site_name":"Tutoriais SQL e TI","article_publisher":"https:\/\/www.facebook.com\/ExpertOnlyCom\/","article_published_time":"2023-08-02T04:30:00+00:00","article_modified_time":"2023-10-10T16:26:50+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg","type":"image\/jpeg"}],"author":"Expert-Only","twitter_card":"summary_large_image","twitter_creator":"@expert_only","twitter_site":"@expert_only","twitter_misc":{"Escrito por":"Expert-Only","Tempo estimado de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#article","isPartOf":{"@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/"},"author":{"name":"Expert-Only","@id":"https:\/\/expert-only.com\/pt-pt\/#\/schema\/person\/406a9576b52944f018739a42046873ef"},"headline":"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es","datePublished":"2023-08-02T04:30:00+00:00","dateModified":"2023-10-10T16:26:50+00:00","mainEntityOfPage":{"@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/"},"wordCount":1374,"commentCount":0,"publisher":{"@id":"https:\/\/expert-only.com\/pt-pt\/#organization"},"image":{"@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg","articleSection":["T-SQL"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/","url":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/","name":"Como utilizar as tabelas temporais do SQL Server?","isPartOf":{"@id":"https:\/\/expert-only.com\/pt-pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage"},"image":{"@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg","datePublished":"2023-08-02T04:30:00+00:00","dateModified":"2023-10-10T16:26:50+00:00","description":"Utilize tabelas temporais do SQL Server para versionar dados e controlar facilmente as elimina\u00e7\u00f5es, actualiza\u00e7\u00f5es e inser\u00e7\u00f5es.","breadcrumb":{"@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#primaryimage","url":"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg","contentUrl":"https:\/\/expert-only.com\/wp-content\/uploads\/2022\/09\/digitization-FD44BBF7CF9_1920x1080.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/expert-only.com\/pt-pt\/t-sql\/tabelas-temporais-do-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"pt","item":"https:\/\/expert-only.com\/pt-pt\/"},{"@type":"ListItem","position":2,"name":"Como utilizar as tabelas temporais do SQL Server? Para controlo de vers\u00f5es"}]},{"@type":"WebSite","@id":"https:\/\/expert-only.com\/pt-pt\/#website","url":"https:\/\/expert-only.com\/pt-pt\/","name":"Tutoriais SQL e TI","description":"","publisher":{"@id":"https:\/\/expert-only.com\/pt-pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/expert-only.com\/pt-pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/expert-only.com\/pt-pt\/#organization","name":"Expert-Only","url":"https:\/\/expert-only.com\/pt-pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/expert-only.com\/pt-pt\/#\/schema\/logo\/image\/","url":"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/09\/cropped-logo_Expert-Only.jpg","contentUrl":"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/09\/cropped-logo_Expert-Only.jpg","width":381,"height":174,"caption":"Expert-Only"},"image":{"@id":"https:\/\/expert-only.com\/pt-pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ExpertOnlyCom\/","https:\/\/x.com\/expert_only","https:\/\/www.youtube.com\/channel\/UCMS5sR_FwAetB0FmciNvUaA"]},{"@type":"Person","@id":"https:\/\/expert-only.com\/pt-pt\/#\/schema\/person\/406a9576b52944f018739a42046873ef","name":"Expert-Only","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/expert-only.com\/pt-pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/084b15660763ff5b13bb60b2f52f97bb?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/084b15660763ff5b13bb60b2f52f97bb?s=96&d=identicon&r=g","caption":"Expert-Only"}}]}},"_links":{"self":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/27530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=27530"}],"version-history":[{"count":2,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/27530\/revisions"}],"predecessor-version":[{"id":27533,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/27530\/revisions\/27533"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/media\/10620"}],"wp:attachment":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=27530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=27530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=27530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}