{"id":814,"date":"2016-02-18T23:50:19","date_gmt":"2016-02-19T02:50:19","guid":{"rendered":"http:\/\/thesqltimes.com\/blog\/?p=814"},"modified":"2016-02-19T00:15:47","modified_gmt":"2016-02-19T03:15:47","slug":"um-bug-no-ssms-ao-exibir-linked-servers","status":"publish","type":"post","link":"https:\/\/thesqltimes.com\/blog\/2016\/02\/18\/um-bug-no-ssms-ao-exibir-linked-servers\/","title":{"rendered":"Um bug no SSMS ao exibir Linked Servers?"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-1\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Muito \u00fatil!\" data-post-id=\"814\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"fas fa-thumbs-up\"><\/i>\r\n                <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">    <\/span>\r\n<\/div><\/div><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de Leitura:<\/span> <span class=\"rt-time\"> 7<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p>Ol\u00e1, caro leitor!<\/p>\n<p>Ap\u00f3s um breve per\u00edodo de descanso, estou retornando ao blog e espero que esse ano possa estar mais ativo, trazendo mais conte\u00fado!<\/p>\n<p>Resolvi come\u00e7ar por uma situa\u00e7\u00e3o que ocorreu h\u00e1 pouco tempo e apesar de n\u00e3o ser algo cr\u00edtico, achei bastante interessante!<\/p>\n<p><strong>Linked Server<\/strong>! Este \u00e9 o nome de um recurso muito interessante no SQL Server que permite acessar diversas fontes de dados OLE DB a partir de uma inst\u00e2ncia SQL. Muito \u00fatil para acessar outras inst\u00e2ncias SQL,\u00a0 arquivos excel, Active Directory, etc. Assim como a maioria das coisas no SQL Server, os Linked Servers podem ser criados de, no m\u00ednimo, duas maneiras:<\/p>\n<ol>\n<li>Via c\u00f3digo T-SQL usando a procedure de sistema <strong>sp_addlinkedserver<\/strong><\/li>\n<li>Via SQL Server Management Studio (interface gr\u00e1fica), clicando com o bot\u00e3o direito\u00a0em \u201cServer Objects &gt; Linked Servers\u201d, e escolhendo a op\u00e7\u00e3o \u201cNew Linked Server\u201d<\/li>\n<\/ol>\n<p>Na maior parte do tempo eu uso a interface gr\u00e1fica, por comodidade. Uso muito a interface gr\u00e1fica sim (pois sou adepto da praticidade e usabilidade), e uso inclusve para checar as propriedades de algum linked server, quando preciso.\u00a0 Ao clicar em propriedades \u00e9 poss\u00edvel ver uma tela semelhante a esta:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb.png\" alt=\"image\" width=\"595\" height=\"539\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Este linked server foi criado no SQL SERVER 2016 CTP 3.3 e aponta para a pr\u00f3pria inst\u00e2ncia onde foi criada. Note que os campos que mostram as propriedades do Linked Server n\u00e3o nos revelam isto. Apenas o nome do provider OLE DB \u00e9 mostrado: Microsoft OLE DB Provider for SQL Server. Bom isto \u00e9 comportamento muito estranho, j\u00e1 que estas propriedades existem e algumas est\u00e3o com valores. Isto \u00e9 o que mostra a DMV \u201c<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms178530.aspx\" target=\"_blank\">sys.servers<\/a>\u201d desta inst\u00e2ncia:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-1.png\" alt=\"image\" width=\"644\" height=\"79\" border=\"0\" \/><\/a><\/p>\n<p>A coluna \u201cdata_source\u201d cont\u00e9m o valor \u201clocalhost\\sql16\u201d e este valor n\u00e3o \u00e9 exibido na interface. Para comprovar que a interface exibe adequadamente estes valores, eu criei um segundo Linked Server, com uma pequena diferen\u00e7a que irei mostrar mais adiante. Segue o script:<\/p>\n<pre class=\"lang:tsql decode:true \" title=\"Criando o Linked Server THE_SQL_TIMES2\">EXEC sp_addlinkedserver N'THE_SQL_TIMES2','','SQLNCLI11','localhost\\SQL16'<\/pre>\n<p>&nbsp;<\/p>\n<p>E eis a tela:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-2.png\" alt=\"image\" width=\"534\" height=\"484\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Note que desta vez, as informa\u00e7\u00f5es s\u00e3o exbidas adequadamente. \u00d3bvio que por raz\u00f5es de simplicidade, eu apenas estou considerando a informa\u00e7\u00e3o \u201cData Source\u201d, mas o que estou mostrando aqui \u00e9 v\u00e1lido para todas as outras.<\/p>\n<p>Bom, mas por que ser\u00e1 que, na primeira imagem, estas informa\u00e7\u00f5es n\u00e3o aparecem? A resposta est\u00e1 no <strong>provider<\/strong>. Repare que na primeira imagem, o provider \u00e9 o \u201cMicrosoft OLE DB Provider for SQL Server\u201d. Na segunda, o provider \u00e9 o \u201cSQL Server Native Client 11.0\u201d. Providers OLE DB (e ODBC) s\u00e3o coisas que durante um bom tempo eram um bicho de sete cabe\u00e7as sentado sob\u00a0trono do rei Dabur\u00e1, cantando &#8220;T\u00e1 Tranquilo, T\u00e1 favor\u00e1vel&#8221;. Eu tinha pavor s\u00f3 de ouvir falar&#8230; Mas em suma, <em>providers<\/em> s\u00e3o apenas DLLs chamadas pela <em>engine<\/em> do OLE DB. S\u00e3o essas DLLs quem, de fato, se conectam com a fonte de dados, obt\u00e9m os dados, e os apresenta\u00a0de um forma padronizada para o OLE DB. Isso permite que uma aplica\u00e7\u00e3o possa facilmente mudar a fonte de dados sem mexer no c\u00f3digo, e isso \u00e9 incrivelmente\u00a0demais.<\/p>\n<p>Os providers possuem uma esp\u00e9cie de identifica\u00e7\u00e3o que \u00e9 globalmente \u00fanica! Essa identifica\u00e7\u00e3o \u00e9 nada mais do que um GUID. H\u00e1 tamb\u00e9m um identificador mais amig\u00e1vel, chamado \u201c<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/dd542719(v=vs.85).aspx\" target=\"_blank\">ProgID<\/a>\u201d.\u00a0 \u00c9 esse identificador que usamos ao criar o linked server. No c\u00f3digo acima, o ProgID que usei foi \u201cSQLNCLI11\u201d. Voc\u00ea pode ver a lista de ProgIDs usando a procedure \u201csp_enum_oledb_providers\u201d ou no SSMS, caminho \u201cServer Objects &gt; Linked Servers &gt; Providers\u201d.<\/p>\n<p>T\u00e1, mas o que isso tem a ver!? Calma l\u00e1\u2026. Te prometo que tudo ir\u00e1 fazer sentido j\u00e1 j\u00e1.\u00a0 A procedure \u201csp_addlinkedserver\u201d aceita um \u201cProgID\u201d especial. Na verdade, n\u00e3o \u00e9 nem um \u201cProgID\u201d existente (ele n\u00e3o \u00e9 retornado pela procedure &#8220;sp_enum_oledb_providers&#8221;, e muito menos \u00e9 exibido no dire\u00f3trio &#8220;Providers&#8221; do SSMS). Este ProgID especial \u00e9 o \u201cSQLNCLI\u201d. A <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms190479.aspx\" target=\"_blank\">documenta\u00e7\u00e3o de \u201csp_addlinkedserver\u201d<\/a> destaca o seguinte, para o par\u00e2metro @provider:<\/p>\n<blockquote><p><em>[ <strong>@provider<\/strong> <strong>=<\/strong> ] <strong>&#8216;<\/strong>provider_name<strong>&#8216;<\/strong><\/em><\/p>\n<p><em>Is the unique programmatic identifier (PROGID) of the OLE DB provider that corresponds to this data source. provider_name must be unique for the specified OLE DB provider installed on the current computer. provider_name is <strong>nvarchar(<\/strong>128<strong>)<\/strong>, with a default of NULL; however, ifprovider_name is omitted, SQLNCLI is used. (<span style=\"background-color: #ffff00;\">Use SQLNCLI and SQL Server will redirect to the latest version of SQL Server Native Client OLE DB Provider.<\/span>) The OLE DB provider is expected to be registered with the specified PROGID in the registry.<\/em><\/p>\n<p>&nbsp;<\/p><\/blockquote>\n<p>O ProgID SQLNCLI \u00e9 o padr\u00e3o e \u00e9 usado sempre que o valor do par\u00e2metro @provider \u00e9 omitido. Por\u00e9m, por debaixo dos panos, o que o SQL Server faz quando o linked server \u00e9 executado, \u00e9 selecionar a vers\u00e3o mais recente do Native Client dispon\u00edvel, o que \u00e9 \u00f3timo. Por\u00e9m, o SSMS parece n\u00e3o entender muito bem esta regra.\u00a0 Aqui est\u00e1 o \u201cprovider_name\u201d de cada um dos linked servers criados anteriormente:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-3.png\" alt=\"image\" width=\"644\" height=\"95\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>No Linked Server \u201cTHE_SQL_TIMES\u201d, o que n\u00e3o exibe as informa\u00e7\u00f5es corretamente no SSMS, o provider \u00e9 justamente o SQLNCLI. No segundo, o provider \u00e9 o \u201cSQLNCLI11\u201d. E eu ainda criei um terceiro, cujo o provider\u00a0\u00e9 fornecido pelo pacote Microsoft Data Access Components (ProgID = MSDASQL):<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:tsql decode:true \" title=\"Cria\u00e7\u00e3o do terceiro linked server com provider MSDASQL\">EXEC sp_addlinkedserver N'THE_SQL_TIMES3','','MSDASQL','localhost\\SQL16'<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-4.png\" alt=\"image\" width=\"1028\" height=\"388\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>E, l\u00e1 est\u00e1 o valor da propriedade! O que parece acontecer \u00e9 que a interface se atrapalha quando vai exibir os dados e o provider \u00e9 o \u201cSQLNCLI\u201d. Eu ativei um trace ao usar a interface e percebi que a interface faz as seguintes a\u00e7\u00f5es (um resumo):<\/p>\n<ol>\n<li>Obt\u00e9m as informa\u00e7oes do Linked Server, lendo os dados da sys.servers<\/li>\n<li>Executa a procedure \u201csp_enum_oledb_providers\u201d<\/li>\n<\/ol>\n<p>Ao que tudo indica, ao perceber que o provider retornado no passo 1 n\u00e3o exite na lista retornado no passo 2, algo acontece e a interface simplesmente n\u00e3o exibe as informa\u00e7\u00f5es! A solu\u00e7\u00e3o \u00e9 f\u00e1cil, e conforme j\u00e1 mostrei anteriormente, basta criar o linked server com o ProgID SQLNCLIXX, onde XX \u00e9 a vers\u00e3o correspondente instalada no servidor onde a inst\u00e2ncia est\u00e1. Claro, isto se voc\u00ea deseja usar o\u00a0Native Client como provider.<\/p>\n<h2>Extendendo a brincadeira<\/h2>\n<p>Bom, para deixar as coisas com mais um pouco de gra\u00e7a, relembre\u00a0a tela em que as informa\u00e7\u00f5es n\u00e3o s\u00e3o exibidas:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-5.png\" alt=\"image\" width=\"595\" height=\"539\" border=\"0\" \/><\/a><\/p>\n<p>Eu ainda n\u00e3o estava convencido do porqu\u00ea o texto \u201cMicrosoft OLE DB Provider for SQL Server\u201d era exibido no campo \u201cProvider:\u201d. Bom, para descobrir o ProgID associado com este nome, voc\u00ea pode pensar: \u201cOlhe na sys.servers\u201d. Mas, conforme mostrei anteriorment,e a \u201csys.servers\u201d nos mostra que o provider \u00e9 o SQLNCLI\u2026 E sabemos que como o SQLNCLI, o nome exibido \u00e9 \u201cSQL Server Native Client \u201d + a vers\u00e3o.\u00a0 A procedure \u201csp_enum_oledb_providers\u201d nos revela qual \u00e9 o ProgID:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-6.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-6.png\" alt=\"image\" width=\"644\" height=\"171\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Perceba que no resultado, a coluna \u201cProvider Description\u201d fornece o valor que visualizamos na descri\u00e7\u00e3o. O valor corresponde ao ProgID (que est\u00e1 na coluna &#8220;Provider Name&#8221;) \u00e9 \u201cSQLOLEDB\u201d, que \u00e9 uma implementa\u00e7\u00e3o depreciada fornecida pelo pacote Microsoft Data Access Components (MDAC). Bom, a minha suspeita era de que a interface iria exibir o primeiro da lista\u2026 E a minha \u00fanica forma de comprovar isto foi deletando o provider pelo registro, coisa que, eu fiz na minha m\u00e1quina de trabalho e vou repetir de novo em minha m\u00e1quina pessoal, e nem preciso mencionar que voc\u00ea n\u00e3o precisa fazer isso em sua honrada produ\u00e7\u00e3o, homologa\u00e7\u00e3o e desenvolvimento, ok? Os passos s\u00e3o os seguintes, e voc\u00ea pode fazer <strong>por sua pr\u00f3pria conta e risco<\/strong>:<\/p>\n<ol>\n<ol>\n<li>Abra o regedit.exe<\/li>\n<li>Clique na seguinte chave: HKEY_CLASSES_ROOT\\CLSID<br \/>\nAqui cont\u00e9m aqueles identificadores globais das interfaces do COM. Os providers OLE DB s\u00e3o interfaces do COM, e como voc\u00ea \u00e9 uma pessoa esperta, j\u00e1 entendeu o que vai fazer n\u00e9!?<\/li>\n<li>Pegue o valor da coluna \u201cParse Name\u201d e use o FIND (F3 ou v\u00e1 pelo menu Editar) do regedit para procur\u00e1-lo.<\/li>\n<li>Fa\u00e7a um backup, usando o comando de exportar (File -&gt; Export)<\/li>\n<li>Utilize sua religi\u00e3o, fa\u00e7a suas preces, e delete a chave inteira. Voc\u00ea vai precisar alterar o owner da chave e reaplicar as permiss\u00f5es para todas sub-chaves. Aqui segue um exemplo da chave que irei deletar:<\/li>\n<\/ol>\n<\/ol>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-7.png\" alt=\"image\" width=\"1028\" height=\"175\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Bom, ap\u00f3s deletar a chave, a \u201csp_enum_oledb_providers\u201d passou a retornar o seguinte:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-8.png\" alt=\"image\" width=\"644\" height=\"160\" border=\"0\" \/><\/a><\/p>\n<p>E <em>voil\u00e0<\/em>:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-9.png\" alt=\"image\" width=\"537\" height=\"484\" border=\"0\" \/><\/a><\/p>\n<p>O Provider mudou\u2026 Mas, este infeliz autor, ainda n\u00e3o estava satisfeito e resolveu fazer a mesma coisa com o SQLNCLI11. E a \u201csp_enum_oledb_providers\u201d retornou ap\u00f3s eu repetir as etapas acimas para o SQLNCLI11:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-10.png\" alt=\"image\" width=\"644\" height=\"165\" border=\"0\" \/><\/a><\/p>\n<p>E a tela:<\/p>\n<p><a href=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image-11.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"image\" src=\"http:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2016\/02\/image_thumb-11.png\" alt=\"image\" width=\"534\" height=\"484\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Sim! As suspeitas se confirmaram! Agora eu estava convencido! O SSMS parece usar o primeiro provider da lista. E por algum motivo, o que me parece ser uma esp\u00e9cie de \u201cbug\u201d do SSMS, ele n\u00e3o exibe as informa\u00e7\u00f5es do Linked Server!<\/p>\n<p>Bom, isto n\u00e3o \u00e9 um problema que v\u00e1 parar seu ambiente ou impedir que voc\u00ea use o Linked Server e talvez, por esse motivo, nunca recebeu uma aten\u00e7\u00e3o, e provavelmente nunca ir\u00e1 receber. Mas, para aqueles que s\u00e3o curiosos e gostam de se aventurar nos porqu\u00eas das coisas, est\u00e1 a\u00ed a resposta, caso um dia voc\u00ea tenha esta curiosidade!<\/p>\n<p>&nbsp;<\/p>\n<p>Fontes\u00a0 e Refer\u00eancias:<\/p>\n<ul>\n<li>Data Access Technologies Road Map<br \/>\n<a title=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms810810.aspx\" href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms810810.aspx\">https:\/\/msdn.microsoft.com\/en-us\/library\/ms810810.aspx<\/a><\/li>\n<li>Microsoft SQL Server Native Client and Microsoft SQL Server 2008 Native Client<br \/>\n<a title=\"http:\/\/blogs.msdn.com\/b\/sqlnativeclient\/archive\/2008\/02\/27\/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client.aspx\" href=\"http:\/\/blogs.msdn.com\/b\/sqlnativeclient\/archive\/2008\/02\/27\/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client.aspx\">http:\/\/blogs.msdn.com\/b\/sqlnativeclient\/archive\/2008\/02\/27\/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client.aspx<\/a><\/li>\n<li>sp_addlinkedserver \u2013 Books Online SQL Server<br \/>\n<a title=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms190479.aspx\" href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms190479.aspx\">https:\/\/msdn.microsoft.com\/en-us\/library\/ms190479.aspx<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Ops, e antes de ir, n\u00e3o perca o primeiro SQL Saturday do Ano, no Brasil, em JoinVille! \u00c9 o SQL Saturday #488. Voc\u00ea pode se inscrever e obter mais informa\u00e7\u00f5es acessando o link: <a title=\"http:\/\/www.sqlsaturday.com\/488\/eventhome.aspx\" href=\"http:\/\/www.sqlsaturday.com\/488\/eventhome.aspx\">http:\/\/www.sqlsaturday.com\/488\/eventhome.aspx<\/a><\/p>\n<p><img decoding=\"async\" style=\"float: none; margin-left: auto; display: block; margin-right: auto;\" src=\"http:\/\/www.sqlsaturday.com\/images\/sqlsat488_web.png\" alt=\"\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1, caro leitor! Ap\u00f3s um breve per\u00edodo de descanso, estou retornando ao blog e espero que esse ano possa estar mais ativo, trazendo mais conte\u00fado! Resolvi come\u00e7ar por uma situa\u00e7\u00e3o que ocorreu h\u00e1 pouco tempo e apesar de n\u00e3o ser algo cr\u00edtico, achei bastante interessante! Linked Server! Este \u00e9 o nome de um recurso muito&hellip;&nbsp;<a href=\"https:\/\/thesqltimes.com\/blog\/2016\/02\/18\/um-bug-no-ssms-ao-exibir-linked-servers\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">Um bug no SSMS ao exibir Linked Servers?<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":790,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[8,9,3,7],"tags":[182,184,156,157,183,186,73,185],"series":[],"class_list":["post-814","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administracao","category-arquitetura","category-banco-de-dados-2","category-sql-server","tag-linked-server","tag-mdac","tag-odbc","tag-ole-db","tag-providers","tag-sp_addlinkedserver","tag-sql-server","tag-sys-servers"],"_links":{"self":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/comments?post=814"}],"version-history":[{"count":8,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/814\/revisions"}],"predecessor-version":[{"id":824,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/814\/revisions\/824"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/media\/790"}],"wp:attachment":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/media?parent=814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/categories?post=814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/tags?post=814"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/series?post=814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}