{"id":88,"date":"2016-02-03T20:55:21","date_gmt":"2016-02-03T23:55:21","guid":{"rendered":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/exemplo-basico-de-cursor-no-sql-server\/"},"modified":"2016-02-03T20:55:21","modified_gmt":"2016-02-03T23:55:21","slug":"exemplo-basico-de-cursor-no-sql-server","status":"publish","type":"post","link":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/exemplo-basico-de-cursor-no-sql-server\/","title":{"rendered":"Exemplo b\u00e1sico de Cursor no SQL Server"},"content":{"rendered":"<p>Para quem desconhece, um Cursor \u00e9 uma estrutura de dados Transact-SQL que permite percorrer as linhas retorno de uma consulta SQL e executar uma ou v\u00e1rias a\u00e7\u00f5es. Basicamente funciona como um loop atrav\u00e9s dos registros de uma consulta.<\/p>\n<p>No exemplo abaixo irei demonstrar uma estrutura b\u00e1sica de um Cursor simples que ir\u00e1 percorrer uma tabela de clientes atualizando o nome completo de cada cliente baseado no primeiro nome e sobrenome.<\/p>\n<p>[sourcecode language=&#8221;plain&#8221;]<\/p>\n<p>DECLARE @codcliente int, @primeironome VARCHAR(30), @sobrenome VARCHAR(60), @nomecompleto VARCHAR(90)<\/p>\n<p>&#8212; Cursor para percorrer os registros<br \/>\nDECLARE cursor1 CURSOR FOR<br \/>\nselect codcliente, nome, sobrenome from clientes<\/p>\n<p>&#8211;Abrindo Cursor<br \/>\nOPEN cursor1<\/p>\n<p>&#8212; Lendo a pr\u00f3xima linha<br \/>\nFETCH NEXT FROM cursor1 INTO @codcliente, @primeironome, @sobrenome<\/p>\n<p>&#8212; Percorrendo linhas do cursor (enquanto houverem)<br \/>\nWHILE @@FETCH_STATUS = 0<br \/>\nBEGIN<\/p>\n<p>&#8212; Executando as rotinas desejadas manipulando o registro<br \/>\nupdate clientes set nomecompleto = @primeironome + &#8216; &#8216; + @sobrenome where codcliente = @codcliente<\/p>\n<p>&#8212; Lendo a pr\u00f3xima linha<br \/>\nFETCH NEXT FROM cursor1 INTO @codcliente, @primeironome, @sobrenome<br \/>\nEND<\/p>\n<p>&#8212; Fechando Cursor para leitura<br \/>\nCLOSE cursor1<\/p>\n<p>&#8212; Finalizado o cursor<br \/>\nDEALLOCATE cursor1<\/p>\n<p>[\/sourcecode]<\/p>\n<p>A ideia deste artigo \u00e9\u00a0apresentar um &#8220;Modelo&#8221; de cursor que possa ser copiado e alterado de acordo com sua necessidade j\u00e1 que a estrutura dele \u00e9 um pouco chata de se lembrar quando precisamos utilizar.<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para quem desconhece, um Cursor \u00e9 uma estrutura de dados Transact-SQL que permite percorrer as linhas retorno de uma consulta SQL e executar uma ou v\u00e1rias\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[43,42,44,41,40],"class_list":["post-88","post","type-post","status-publish","format-standard","hentry","category-banco-de-dados","tag-banco-de-dados","tag-cursor","tag-dba","tag-sql-server","tag-sqlserver"],"_links":{"self":[{"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/posts\/88","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/comments?post=88"}],"version-history":[{"count":0,"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/posts\/88\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/media?parent=88"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/categories?post=88"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.williamcleissondecarvalho.com.br\/blog\/wp-json\/wp\/v2\/tags?post=88"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}