<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7118970713551472781</id><updated>2026-07-19T12:54:13.815-03:00</updated><category term="T-SQL"/><category term="Para programadores"/><category term="SQL"/><category term="Manipulação de string"/><category term="Avançado"/><category term="DB Admin"/><category term="Curiosidades"/><category term="Projetos"/><category term="Crystal Reports"/><category term="Datetime"/><category term="Manipulação de valores"/><title type='text'>SQLBURGER</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-6127452392852125585</id><published>2013-03-14T15:01:00.001-03:00</published><updated>2013-03-14T15:01:13.398-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Curiosidades"/><category scheme="http://www.blogger.com/atom/ns#" term="DB Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Atualização do cache do Intellisense–Microsoft SQL Server</title><content type='html'>&lt;p&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoM_O-Rt4nC98BvQ-aFDW_75IAh61gmEodJzC3IqSO7FZzFCGMmOd2DtaRC7d7Zv7up34eOMYEqX6Ad-Ft0jkkWBls7AESkFirqE5uTFaAxhWnuTN7CkGQAb1CMCYaop-JJngomIa-3y6z/s1600-h/image%25255B12%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIctlrW6mPgUurkGxZMXDz1qV4__AIcC3y2mGDY7LbwClWmtToAFoOTQjyeR_PSB9d6SJIKfZuh6jYOWvYyGzrcIRYIoA9PxrjnDpneMQcGwdQZyzZL4gB3vFIydttkh7cJAMDlka0X-6n/?imgmax=800&quot; width=&quot;244&quot; height=&quot;124&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Esta é uma dica rápida pra quem tem dificuldade em trabalhar com o Intellisense do SQL Server. Para este exemplo, estou usando a versão 2008R2, então creio que isso se aplique a todas as versões a partir da 2005. &lt;/p&gt; &lt;p&gt;Quando você cria uma tabela, ou altera a estrutura de uma tabela existente (adicionando uma nova coluna), o intellisense parece não reconhecer estas modificações, e atrapalha bastante durante a criação de um código.&lt;/p&gt; &lt;p&gt;Muitos desabilitam o intellisense exatamente por não compreender o comportamento da ferramenta, porém ela é muito útil. &lt;/p&gt; &lt;p&gt;A solução? Muito simples. &lt;/p&gt; &lt;p&gt;Se você utiliza a configuração de teclado padrão do SQL Server 2005 ou superior, basta pressionar as teclas CTRL + SHIT + R. Caso você utilize a configuração de teclado compatível com versão 2000 e anteriores, esta tecla de atalho não irá funcionar. Mas aí basta você acessar o menu Editar – Intellisense – Atualizar Cache Local:&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA51IiBt56NY9qiGCw5fbafs2I8JTDdpZYLL1cDiY5lUdZjDycsoyL5Los0jXM-Fh5j4bBzhkw_04aP_5KjKlG8eydKaWtnrTslKK_irUvb9NXKIuV633cxFzSWtwU-Kw2DTzDhdPc9M6m/s1600-h/image%25255B17%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6fCm4f3_fY0FT5Seuc0k5odv5uyIqolwKfKcKezVpfanhLsSHmpwhPIgjk2DahfvQ7-mdXAAc11DLV9NnEjPEMDZUfPNPVitKpfgHs3cGs3YwIFvrrksntHWJzLLPhyphenhyphenYRxbk8_rc6MhuI/?imgmax=800&quot; width=&quot;531&quot; height=&quot;386&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;E problema resolvido! Cada vez que fizer alterações nas estruturas, criar novos procedimentos, tabelas, e o intellisense teimar com você dizendo que está errado, você já sabe como resolver a bronca.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/6127452392852125585/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2013/03/atualizacao-do-cache-do.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/6127452392852125585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/6127452392852125585'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2013/03/atualizacao-do-cache-do.html' title='Atualização do cache do Intellisense–Microsoft SQL Server'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIctlrW6mPgUurkGxZMXDz1qV4__AIcC3y2mGDY7LbwClWmtToAFoOTQjyeR_PSB9d6SJIKfZuh6jYOWvYyGzrcIRYIoA9PxrjnDpneMQcGwdQZyzZL4gB3vFIydttkh7cJAMDlka0X-6n/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-2126531169848775775</id><published>2013-01-06T16:34:00.001-02:00</published><updated>2013-01-06T16:40:39.453-02:00</updated><title type='text'>Fazer update em outro banco de dados da mesma instância</title><content type='html'>&lt;p&gt;&lt;br&gt;&lt;img src=&quot;data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSEBUSERMVEBUWFxUUFxcWGBYcFRwWFRgaGBcXFxIcGyYeGRojGhgYHzAhIycpLC8uFh4xNTEqNSYtLCkBCQoKBQUFDQUFDSkYEhgpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKf/AABEIAMoA+gMBIgACEQEDEQH/xAAcAAEAAgIDAQAAAAAAAAAAAAAABgcEBQEDCAL/xABBEAACAQMDAgQEBAIGCQUBAAABAgMABBEFEiEGMQcTIkEUMlFhCCNCcRWBJFJic5GhMzQ1Y3J0grKzJUNEU+EW/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/ALxpSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSlApSuCaDmlafVOr7O2O24uoIW59LyKG45Ppzn3H+NaJPGXSiGYXRIXBYiC5IAJwNx8rjJIHNBNaVEdN8WNLnfZHeR7vbeJIwcnAAaRVBP2zUrjlDAMpDAgEEHIIPYg+4oPulKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUClKUCsa/1GKBDJNIkKDuzsFUf9ROKjnVHXQhlWztEF5euVAhBIVFPJknkAwihecdzke3NY2leH7Sss+rzDUJh8sZGLSP+7gwAzdxvYZIxwMUHx/8A3lxeZGk2jTL2+JuMxW2SQAUUjfMMZJxjHH1rsj6IuLhg+o38sy8/kW263gG4YwWRvMcDLd2GeM/SphI6opZiEVQSScBQoHJJ7AAVQ/VH4h5xO6WMUPkq2A8gdmcK3zYDKFVsHjk4PcHsFvaN0PY2hBt7WGNhjD7QZOBjPmNls4zznnNRfxg8RJNLhiS3RTLPvw7DKoqbcnZ+psuMZ475z2rU+HnjoLuZba9jWGWRgsckeREWOcKwdiUJ9IGC2SfaufxA9KT3NvDcwr5gt/M8xFBL7ZCnrAHcLs5+gOewOApe+65u55Fe5kF1tOdsyIy+/pxt4Xk8DH27VZvhlfStCZ9LeXNuB8RprsWgcPnDW0zZMRbDEKcnIIJIOTSeKuX8OOjS/E3F1tIh8rydxzhpC6PheMHaFOeeN4+vAXD0x1fBfI3llo5YztlgkG2aNxjKvGee5xkcVvKh3WPQfnyre2bi0vovllwdrqAQIpVBwVOQM4JwMcjisnonrZb0PFIogu4CUuICQSrKcFkP6kJ9+cdj7EhKKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKhfWPUrvOml2EoS7lGZJMZFvABlpGweJCCAo/tAnGQa3HWXUnwVo0wXzZCVjhj95JpDtRABycnnA5wpqHt0c+nRR6kN93exsZbxyx3SxSLtmRQONsYw6L/uuO+KDr17Wbfpuy2x5ury4LMXkJ3yyfqmmbOQgJ4UH3wDnc1V/pn4hb9JQ0yQzp7oFKH/pcZwf3B71IvxEaG8sdtfR+uJAY3K8gCQhkfcONp5Ge2Sv9aqLoPWuhdUQ6zp0pt2CO8bxOjctG7oyjcB3XnIYdwPqCB5W1nSJLWeS3mUpJGxVhg+3YjIGQRgg+4INWv8Ahuik+JuWCt5XlKrNzt37sqO2C2N3vkDP1q2er/Dyz1ID4mP1rjEiELLgZ9O/ByvJ4NB5FiByMd88Y+vtXtjTwfKj353bF3Z77sDOfvmof034OafZTCeNHlkUgoZX3BWGfUqgAbue5BxgEYNTcCgi9z4X6ZJMJmsod4IPAKoSDn1RKQjffIOfepHaWiRIscSLGijCqoAUD6BRwBXdXBOKDmod1n0vIZE1Gx9F5AMbc4WeHILwuMHkjO04zkD7FYhr34i4Ip2jtrZrpF48wyeWCwJB2p5bEr2wTjv2HvJOiPGC01FhD6racgYjkIIY4yRHIOGxzwQpPfHfASXpXqaK/tUuYCdr5yDjcrDhkYexB/xGCOCK29V5fx/wnU1uEBFlfvsuBkbIrpseXKBjIV+x5x3PsoqwgaDmlKUClKUClKUClKUClKUClKUClKUClKUClKUFZ9baY2oa3aWRdoooIHvWaNsSeZv2R7coyhlZVPI7M32zv5bG8slMkU0upxgZeGbZ8RgZyYJkVQx99jqc4wCCecLpX8zXdVkPBjFpAAOxUxl8n+1nj9vapyRQQvpO7iTdp7uk9u6s1k7MJEmtSBvh3EkO0ROwj3QpwcE1rNT8A9NmkLqJoM90ikATJJOQHRiO+MAgAAYFdvW+gm2ja4gd44QWlwi7vhrgnIu4gFJEWdwmjHBWR2AzkNJulupPiUKyL5NxHhZoiQSCQCHQj54nByrjg8juDQZegdOW9lD5NrEsKZyQMklsAbmY8scAcn6VsqVVvXfjnFY3DW0EPxTocSEvsRW90B2ksw4z7e1BaVaDrTrKDTbYzznJ+WNB8zvjhR9B9T2A/kDBuj/H2C6nEN1F8GXIVH37o8nPDsQuznAB5HPOK6PxG6dI9nbzJuZI5GD4wVG9QFZuMjkbc5x6vqRQaeL8Ssm/1WSbMnhZTvx7clcfT2qwT1RFq+j3bWW53a3nj8o4EqyNGwVWUEjn2IOD9eDjylVk+AVyy6uFUkK8MocexAAYZ/ZgDQVzLGVYqQVIJBB4II7gj2NfVtcNG6uhKspDKR3DKcgj9iAa9JdbeBttfSvcQyNazOdzYAaJmOcsU4IZiQSQccE4yc1qem/AG3tnE9/cC4WPL7NoSH085kZiSV9yOB9cjIIWDrVut3pTi6i2+Zb73Rsja+wPjPBBVwPp8taXwf6ra809Em3CeAJG+/O5kKhopcnkhkI5PcgnnIJzrmVtT3QxhksePMmzg3AByYoR7wkjDSHhlyFBDbxg65bix1a1u4wFS7IsJxkhd2A1swQHG70FBxjDY4zQTulcCuaBSlKBSse8v44UMkzpEi4yzsqqMnAyzEAckD+dRWTxDM3Gm2c+od8S4EVrn1Di4kxuwVx6QR988UEyrjNQ3+G6xOW8y6tbBfUFW3iaZ8HG0tJKVG4DPIAGQDjnAxLzoJgnm3etaghA9bpPHBFge/lhdq8Yyc0E9zXNV/Z9GymPzLDXLt9xzulkiuojtyMDIGPVwSD7YP2ypOrLqwCjU4A8IHqvLbcYx7Ay22C8ZJwMrlctxjsAm1K6LK+jmQSROsqNyGRgyn9mHBrvoFKUoFKUoFKUoIL0D+ZqOr3C/I11HAM/NvtotsnH9XLDBzz9qnVQTow+Tq2qWvZWkivEXvzOmJWLd8lwvp7D2xU6zQGWq01LSJrS8Edo2xgks9luKhHwd02mlRjMQAEiEldm44yFOLLzWt6g0VbqExlmiYEPHInzxyJyjofqD/iCR2NB8dNdQpeW6zJ6G+WSM/PFKvzxOCAQynjsM8Hsa8j9U2UkV7cRzFjIssm4suwsSxO/Z2AYEMMcYYYr0jaWUtwTd2zrZajHthu4mGYJGjIIE0fLbSvqjlX1bJByew0XWXT1jqDD+Ixvo13gfnMVMEgX0gfED8pwCQPVsk+UYA4oPO9esvDd2udFtvix5xkiZXEij1JuZV3Aj1AoF5Pcc85zUG6d/D5bbxJLe/GRqR6YkCq2OSrOHY4PHbBwe9Wvd65a2wCyzwwY2oFd0U5x6VCk5zjsKCsda/DjbSPutrmS2UkkoyCUDtgK25WHv3Ldx9OZt0P4c2ulq/kbnd+HkkOXIByFAACqB9hz75wMdknVkkq5s7WSReCZrjdb24UqG35kXzHHP6Ux6TyPeLz3U1+35fnagAAG+Gma105SScr8RnzLk/UrkY9gTigll71rELg2tuj3k44dIRlI8nH50x9EfIORktx8vbMYlvY7iZRfTfxCVWGLCyV5LeN9ylTM49MjjBOZmVOG2rkVuNO6BzGqXbgxAcWlsDDaLn5gQpDz8ZBMhw2TlRnA7OpetLDR4UR8R8fl28KruwSeRHkBVyD6jgZz70GW89++1YIILNAQMzsZHC8jAgiwgIG0j8wj2+9QPxUh1WKwbzJbe5i82A744nimQhwyvjzGXbvCjuT6gePbceH/AIyRancG2Nu9vJtZ19YdCFxnLYUg8/QjjvW38XP9i3n92P8AvSglVtu2LvxuwN2O27HOPtmu2sTSP9Xi/u4/+0VjdSdSQ2Nu1xcNtUcADl3Y/KiL+pj9P3JwATQZ11dJGheR1jReSzEBQPqWPAqIJ1pc3m5dMtG2Fcrd3O6ODliA0ce0vKMYYfLkd8djHum0n1y6mk1GJoLS2dY0sm3gGdcPumOF3lQflIx61449VqquBgce1BENN8PFMnn6jK2pz/71VFunOR5Vr8q4x35J5PvUuSMAAAAAcADsAPYCvqlBwa8keJnUU13qVwZmbEcskUaMMbERyAuz2bjn6mvW5FU54o+CbXMr3en7RI+XlhY4DuTktGx4DHkkEgZ5zzQUhoeuzWk6z28hikQ5BHuPcMOzKfcHg16y6F6oGo2EV1gKzAq6g5AdDtYd8gHuAecMK86Q+DOqs+z4Rl7ZZni2gEkZ3BznGDkDJ7ccjPonoDpFdNsY7YFWcZeVh2aRsbj9cAAKM+yig0Ou9NyaZvvtJUqARJcWSjMUqAYJiQD8qQDnK98djjBmWha1Hd20dzC26ORdwP8AkQfuCCD9waziKg+oodInkvFG6wmZWuI1728hwvxESDhkckeYoG7OGGeRQTmlfKOCARyDyCO2P3r6oFKUoFKUoILr0httes5s4S6gls2ycKHQ+dEePmYkleRxnvzVG9Ndc3Wm6m7ySmTdKUuQxZlcByGb67gdzKcZ57YJBv3xS0lpdPaWIDzrVkvIie26A7zke4KbuD74qr/E3w+N3EmsWCFhcIks0SjsSm4yLwOOPVkDnn3OAw9W8a7qLVpJIJxcWgkwsZUbDFxnacBg3fn698itd1N4rXK6s9zZXUjwBkaONmfySvlrlGgJA77geM55Bzg1h6l4ZTLpFvqMUbnKu1whzuVfMby5lTH+jMe3P8m7Ekam36Mkl0ptRi9SxTtDKueQuyJkcDHI3OwPPHp4wCaC+oOoomjh1y3yI5AkV8vqO2NSVDlBn1QyHuAco7HtgiwigIwRkfQ1R/4dLkyRXtrKpkh/KfayqY/WHV1IPfcAvHbCH+dpdF3B8hraRi0lrI1sxbG5lUBoXOD3aFoyTgZO7AxQfV90HYTA77ODli5KoqMWOclnTBOc+5rFvGsdOZfLtoxPKMJFbQp8RJtxnGACQvBLMQBjJNbDqTWTBGFiCvcTHyoEPYyH9TAc+Wg9bkdlU+5FfHTnTK2qs7ubi4k9U1w/zu30A/RGP0xjgD75JDDj6dlujv1EqU4K2aEmAY/+5iB8S3AOGAQHsGxuqTKgHAGK5pQa3qLWVtLWa5flYo2fGcZIHC59iTgfzrx/rmuTXk7z3DmR3JPJJAySdqgk7VGeAO1eyr+xSaN4pVDpIrIynPKsMEZHI4PtUA0nwF02GTzGEtzgghJWBQYzwVVV3DkfNnsPvkIn4B9BzJJ/EpgY4yjJCp+Zw+Mvj2TAwPrnPYc2D4vSgaNcqTjeI41/4nkQDNTFVAGBwBUG8Sf6RJZaaP8A5Fwskv1FvbfmPg91JO0Ajtg0Eh1HWI7Cx864bCQxqGxjJKgKFQHGSTwBx3qPdL9PPdyJqepAGUgPbW/Pl2684YLuKtKy7GLEZBAxjHGF1dpw1TVodOk/1a2j+LuACQXd8rFH+2DkkHszDKnFbqaGbTE3o8t7aIBvSRme5iXPLxPt3SoASWRzkBfScDbQZPQ2BFcLwZFvLzzcd9zSl03N+o+S0X1wNo9sCSVENJlWDU5VDhor9EuoSuNhkiRUmAYNglk8qTIHOWz2GZfQKUpQKYpSg4xXNKUCviaEMpVgGVgQQRkEEYIIPcEe1fdKCA9KXL6bd/wmdt0LhpLCQg8oCS9szseXjyMd8qR24FT0VGuvulTe2hWM7LiJhPbSA4KzpyvOeAe3PbIODgV3dDdTC/sYrjgPjZKo/TKnDrjJwM8j7MKCQUpSgUpSg4NQLpvbpl++nNhbe5Zriy59Knjz7fJxyGIZQM8Nycmp9Wh6z6c+MtiqnZNGRNbyDuk8fKH9s8EfQmg3uK67e1RF2oqovJwoAGTyeBxya0HRPVfxsLCRDDcwERXMRGNkoHOOSCpwSOTx+1STNBgaXoNvbBhbQRwBzuby0Vcn6nA5rXRQmLVXIA23NsrE5xh7WTafRjkstwnqz/7YH7SCop1CSup2c20skVvqDvjGQALf6kdzx/Og+tFYXV/cXRwyW7Gyh74DAK9y/wBCS5WPI7eSRxlsymtF0PFjTrZssTJEk7l8bzJOPNkLYA5Lu1bzNBzSuqC7R87HV8d9pB79s4rtoFKVxmg+ZZQoLMQAASSewA7k1AuhrU315Nq8oYo35NkH/TAow8ioCQu9s89+D7Hlq+sSarcPYWRxaIdl7cjsR+q2gb3ZhwzDsD/jObS0WKNI41CIiqiqOwVQAoH2AFBD/DQiY399gZuLuRVI3A+VbgRRBlJwGwGJI77v5Dbad1/Yz3TWkVwrzqWUphwSUzuCsVCsRgn0k8An2rSeDo/9Ob/mbr/yGvNWpW72l3IiM6PDK6BuVcFGIDZHKnjNB6R13SDaYSN/LiaY3Fq7H0W97+mBvpbTbnXAxt3uufWuJdoGtJdQLIvB5SRD80cqcSROPZlbIP8AjyCDWh6K1dNX0lGnCyF1MU6+n/SJwxwPlJ9LjtjcpGOK02i3j6ffSJdbishijkkBZgxJ8u1vJB+gyBTDKRwJI4z2cEBZNK4Vs8jmoj4tXUkejXbxMyOEUZXIbDSIrcjt6SwP2JoMLWvGvTbaUxGVpmUlW8pCygjuN5wD/wBJPatr0n4j2WokrbS/mDvHINsmOeQp+YcfpJx74ryIazNH1R7aeO4iOHidXXPbKnOD9j2P2NB7WpXTaSs0as6+WxVSyEglSRkrkcHB4yPpXdQKUrpu7xIkaSV1iRRlmdgqgfUseAP3oOrVtSS3gknlOEjUu31wozgD3J7Ae5IFVf0OLnTtQRbskrqwe52hGXyrskyNEVJOPQ2CfqAOy5Mpsmk1OdJ2UxWMLiSFWXElxKmdszKRuSJG5ReCxAY4AArB8Y3A0/zomHnWc9vdKAyZBR9uWU5yMP2+uO/YhYFKxtOvVmhjlUgrIiuMEEYYBhhhwe/esmgUpSgVxiuaUEM6s6Sk84ajppWK8QYdDxFcxjvFKP63Hpf2wMkYBXadLdYRXqkANDOgHnW8gKzRMfZlIGR9GHcEds4rf1GeqOiFupFuIZXsruMbUuIu+3IOyRMgSpx8rfU0ElqGajH5l1qMuCRDZC2Q8gb5FeaZcfq9Jtzn2yR9a0+ueIGoWUYju7OOORmCfGKzNYqH4EjgKXXBI9Bxn64IqVdL6bb/AAXlwSpcrJvMsyFcySSjMkjFSQGOe3sNo7AUG3huVS3WR2CosYZmYgKFC5LFjwABzmvNvil4rS30zw20jJZqQFC5UyFf1v74z2U44AJGe1xwae13oUlhC/lTRQmxfJOBLAqoylsA7XAHOPlkBwe1VHo3gDqMsmJxHaoCAXLq5I5yURCc9v1Fe4/kHZ+H2zmbUy8bOsUcbGbHyNuysaN7fNlh7/ln716SqAaRqGkaLF8NDMhdm5VD51zI/IAZYwTnggDAA+2a7x1Jqd2QbGyS1i4/Mvyyu273S3jOQAOfUec44waCW6nqsVvG0s8iQxqMlnIA/wD0/YcmoO11eayAIfM03TzndKcLdzoy4xGhBEUec+o8kYI9xWz03w9VpVudSf8AiNyOVLjEEfuFit/lwD+pgSe/BqYUGDo2jQ2sCQW6CKNBhVH+ZJ7kk8knkms01zQ0EG8OsQT6lZA8QXZlQYwixXKCRVBJySCGBz9vrgQTxg8N5LqU6lpwF0rDEyRsGbfF+XuRR83C4ZRyCp45OJJ4hxG2vxKg3LqFpcWDDK/6YITAeTk7s7MDA9+ScVWHgp1k1nqCwsfybkrG44wH5ET5PbBODyOG98AUFneAWhXNtZTfExyQh5cokgZW4UBm8th6QTgZ99n7VKOu9KLRfERxmdokkWSEZ/OtZAPPgx/WIVWUgZ3RgDG41KBXRdX8cZUSSJGXO1QzKCzH9Kgn1H7CgifTOsLaxxxSzebayhTZXL4AKMPRbzMcYkA+UnG4cfMMGYTwB1ZWG5WBUg9iCMEf4VFdMsI7e4l06SNXt7jzLm3RgrR7dy/EwmPsqrI6uOMETED5ee2LQ7u0wLKUXEA4+GuWbKg5P5V4AzgD2WRX44BHGAr3W/w4I0pa0uvKjJJ2SqWK/YOCMj9xntye9ZnR/gAltcpPdTi5EZDpGilVLg5BckkkA4OB3xzxwZ3H1LdbWL6ZcqRjaFls23EnGOJ/SM45xwMk9q6xrmoSemPThAcfPcXMW0Z4BCw+YzY74O3t3oJPWDq+uwWqb7iVIVJCgseSxzgKvdjweACeD9KhWqajcBzDc37NKRk2mmQf0jbxyZnZ3RSvq3Hyzk+luwPOl9DSuxfH8N3BgXDi41Ftw9Ra+fcIc99seeSSGBNB2dR+IjgBIENoZDtSa7jfc3IX+j2C5nlbJ/UqKOM5yA2u03T7q4kJeG6vGUghtT2Q2iEDKvFZQ7vNfLFvWAVwo3KRmt1p2taPYOyrdW6zN/pZHlDzue/5k5JZuecZwPoK1/jN169hZots22a5LBHHO2NQN7q3bd60AP8AayO2QGH1JqtrbsRrGqSzyYYG1tS0cW1sNteGI72GPT+a+CG7e9afUOn9Ev8ATbybTlCSwRPKSPNEgKIXAZHb1KdpGeRkfaqIdiSSSSTySe+T7k1bnR3TVzZaDqd5KphM8PlIjqQ3l52s5BORnzGABH6c9iMhc3QH+yrH/lbf/wAS1v603R1m0WnWkbY3JbwIcdsrGoODW5oFKUoFKUoFKUoPiSIMCGAIIIIPIIPcEe4qL3/hfp8reYLcW8g34kt2aFwXGCwMZAJ/cEcnjk5ldKCB2PhDBBI8sN3fxSOMO63A3MB/WYpz/OslvCu1k3/FS3l6HxlZ7mUr6SCDtQoD2HfPapnSg12ldO21sMW0EUHBH5aKpwTnBYDJGa2AFc0oFKUoFKUoI14hdPNeWEkcXE6bZoGGAwmiO5NrHsTyuf7Rryfc6dJCI5CGUOCyNyOUO1wPcMjggjvwD2IJ9q1X/TlrHbahdaZPEHjmkN/bFwjKwbYZVwcnckoyM+yg8YGQm2lSu0ETSqI5GjRnQHIVyoLKDk5wcjOfaqB/EdK/8Qt1JOwW4Kg/LuaWQOR9yFTP7CvRFV1419Evf2IkgBaa3LOqgZZ0I9aLgZ3cKQPfbjHIwEI8OOsJbqyaB3L3Vhtu7Uk+p4owVkgJxnlGZM8nEg4IXBvTTr+OeJJoWEkbqHRh2KnkHnmvNXgPBL/GoymQqpN53t6NhABH95sOO/p+xq8/D6ci2lgZPL+FuJ7cc5BVW3o329Ei/bg4wOAG71jWY7aPfKT9FRQWkdjwEjjHLsSQMD61oVsb29JNw5sLY42wwt/SXX/f3AH5WeMrEc8kb/rpTr8cdrLrd3mcB5fgkPp2RN+SioCOGlA3MTkgHt6eaI6r8QbzUGzcTNs3FliT0xLnthR3IHGWyfvyaD1VoWi29tEUtUWNCxLFSSWcelmdySXbIwSSTxVJ+N3iTM1xJp1u5jhRQk+Bhnc4LLu77AMDAxn1ZyMVjfh3Sc38pUv5AiPm8ny9xI8vPtu+cj3+b71POrvAu3vbp7kTywNIdzqArLuwBlc4I7dsn7YoPOFnbPLIscas7uQqqoJYseAAByTXqmy8NYJNKtrC9Uz+Sg53vlZSDuKOMHaCxABGMBRg4rK6O8N7PTMtboTIy7WlkO5yM5wOwUHjhQM4Gc4p1v4i2umJmdi8jDKQpgyNzjJ9lXPufocZIxQYnTnhBp1m3mJD50gJw8x3kZx2TAQYx3255PNdXiaRObLTyoYXV1GZQc48iD8yQZU7gWwoBHHfkd6hFl+JHdOoktBHCWAZhIS6qeN2NoBI744qb9CyfHzzao53xl3gsgR8kCYV5BkZVpGXkHBAXHvQTeKMKoVRgAAADsAOwFfVKUClKUClKUClKUClKUClKUClKUClKUClKUCo71p0ybqJXiIS5t3E1vIVUkOpB2EnBCPgK2CPbOcYqRVwaCJwdaGbR5r+NAksUM7NE+TsngRi0bjg8MOxwSCPrVYeG3jdN8SINSk81JWCrKQimNjwN2AB5Z9z7d+2anHWWlfAzS36LvtLhPK1CEIWJUhlFyo+qhsMOxXJwTzXnDWtN+HneLcJFByjqcq8Z5R1I9mXB+ozg4IIoPZ0UCgkqoBbkkAZP7kd6gmqXiwLrJjk5PkgAqdqXFxbxxKu3nIZjExbGPWc/Ka2nhZqj3Gj2kknzeWUJyefKdogST7kICfuaiuot5rX29cR3GrWFocN6sQm3Rj8vGdoP8+/HISPrLw7S90uOwjfyfJ8nymOWA8lPLAbsT6Cwz981XWjfhvk3A3d0qrzuWFSWPPADuABkc52nHbB71eU9yqIXkZUUDJZiAo+5J4FQu58atKSQJ8Vu9TKWSOYoNoPO4J6gSMAru7j25oJL070zb2MIgtYxEg5PuzN/Wdzyzfc+wA7ACof1r422li5hjBu5lyGCECNWGRteTn1bhggA4/yO18SepGg0ae5tmD7kQJIpBULMyp5gOeeHyMZ5x7ZryfHEWYKoLMSAABkkngAD3Ofag9IdAeNY1G7FrJb/DsyM0ZEhfLINxUjYMekMc5/Tj3FVR1x0rqU+qXBe3uLhmlKq6wvsZB6Y9rAbQuwL7/vzmrB8Luik0iBtU1ORbZ2TaqPj0I2G5GCxlbb8i8gZHJJAk83VlzqatDpUbwRn0vfTqUVM91hhPqkccjPAUj7g0FLdM+FU9xfJauyqVG+6CncYEz6Udgdvmtj5FJIzzjDAeoLCxSGJIYlCJGqoijOAqjAGTyeBWB0x0xDYQCCBTjO53bmSRz80kjfqY/5dhxW3oFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoFKUoPmSMMCpGQQQR9QeCKoDrHwstbK6LSpcLYy4IuIju+FYkgpKhDb4slME4POMsRz6Brrnt1dWR1DqwKsrAFSCMEFTwQR7Gg1Gg2ttZafGsLr8PDET5gIIKrlnkJXgkncxx7k1CfhhHpNrcbPLV9Rgv5CRhhHNeb1Zx7sI3iU4z24yOayeovCPdg2E7W0e4O1nIXewcqQwBtww2gsoJHI+gGK51nV757Wa2vdKkYNE6+ZZvHKNyj0OkTYZWDAMvdhhcAkUFT+M/Wst3fyW24iC2do1TsDImVeRh7nduA+g7dyTC9D0Sa7nSC3QySOcAD/ADZj7KBySe1WgOkRehbqfSdSN0W/pCoYre3kcElpAJAZAXyudoUZLYIIqZ9P9GagiGO3S00OI4DeUPiLtsceudvSfqPcZoJfYRQ6dpsUV1LGscMKRO8hAQ4XBHPfJ4Axk/SovZ9QLMx/gOnRNkbGvHiEFuuSDgYUSTYwCVXHtW407wutVcTXRl1KbB9d2/mDnuBCfQAMnAwcZ71L1QAYAAHbA7UER03w9VpBcalJ/E7gcKZFAgjH9WK2+Uf8RyT9ql+K5pQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQKUpQf/9k=&quot;&gt;&lt;br&gt;&lt;br&gt;As vezes, é necessário realizar operações de dados entre diferentes bancos de dados dentro de uma instância SQL. Na verdade, isso é muito comum. Então aqui vai a dica.&lt;/p&gt; &lt;p&gt;1ª opção: Buscando os dados de um outro banco de dados ao qual você está contectado:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;  update &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd&lt;br /&gt;     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;set &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardname &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd2&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardname&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;sboatlantida&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd ocrd2&lt;br /&gt;   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;where &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardcode &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd2&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardcode&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Neste exemplo, especificamos a tabela que será atualizada logo após o update, um alias para a tabela do banco onde vamos pegar os dados (ocrd2) e na clausula where, fazemos a correlação entre as tabelas.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;2ª opção: Realizando update em outro banco de dados:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;  &lt;span style=&quot;color: blue&quot;&gt;update &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd1&lt;br /&gt;     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;set &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd1&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardname &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd2&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardname&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;atl&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd ocrd1&lt;br /&gt;   &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;inner join &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;SBOAtlantida&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd ocrd2&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;on &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd1&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardcode &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ocrd2&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cardcode&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Já este exemplo, estamos atualizando o banco de dados ATL através de dados provenientes do banco SBOAtlantida. Para iniciantes, pode parecer estranho especificar na clausula FROM (da onde) qual a tabela a ser atualizada. Mas entenda como a clausula FROM onde especificamos o nome das tabelas, independente da qual será atualizada. Este segundo modelo pode ser utilizado em ambos os casos descritos acima.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Muito útil quando precisa interligar bases de diferentes sistemas.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/2126531169848775775/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2013/01/fazer-update-em-outro-banco-de-dados-da.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/2126531169848775775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/2126531169848775775'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2013/01/fazer-update-em-outro-banco-de-dados-da.html' title='Fazer update em outro banco de dados da mesma instância'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-3119137253989613655</id><published>2013-01-02T19:51:00.001-02:00</published><updated>2013-01-02T19:51:52.998-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DB Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Tamanho de todas as tabelas de todos os bancos de dados de uma instância SQL Server</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYPozn0XBagxlEb05VrD4Hohi8GzMU6wuCtaIN95ebhsJZeSZOnO1MwciLaGuZqxSzBvxq78CQ5ckCPhMUE9bUOJL4NsKzLVp2JE19iUwtKC0HijrzKX2-8_wwJBfVflHmDpTmwkgVy0L5/s1600-h/image%25255B29%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFgcdZFMmjS9AB5O2Y9In7Pl-ZkJfzelCDpwHthFJkkrf8EC9ohp8w3ApOFo9Qo-9jCQGvxLaJWex0doVn9XwqUGI_TWTx1r4QT1ozzGjdS0FpaQMWeWldOpG_RAY0BTa75iAni05nHiGh/?imgmax=800&quot; width=&quot;345&quot; height=&quot;279&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Caros colegas, hoje recebi um comentário que acabou se tornando uma sugestão bem interessante, visto que recebo muitas visitas sobre como obter o tamanho das tabelas de um banco. Bom, a solução que vou propor aqui vai mais a fundo, de forma a proporcionar uma ferramenta que facilite a gestão do tamanho de tabelas, quando isto é necessário. E é claro, eu preciso abrir 2013 com um post bacana, então aí vai!&lt;/p&gt; &lt;p&gt;É claro, como profissional da área, não posso negligenciar uma verdade: se você está tendo que monitorar tamanhos de tabelas no banco de dados, existem problemas bem mais graves por trás de tudo isso. Ficar resolvendo somente o resultado de um problema não resolve o problema em si, tem que atacar a causa, sempre. Nem preciso entrar em detalhes, certo? Mas se você não consegue resolver a fonte do problema (ex.: sistema de terceiros), essa dica vai facilitar sua vida.&lt;/p&gt; &lt;p&gt;Hoje vou postar duas alternativas bem simples para melhorar a utilização do cáculo, uma derivada da outra. A primeira procedure, que eu acho a mais interessante, realizará o envio automático ao seu e-mail com um relatório em HTML com as maiores tabelas, de todos os bancos de dados, sendo acionada por uma JOB, por exemplo. Eu já fiz uma formatação HTML que permita visualizar em dispositivos móveis (claro, qualquer aparelho que reproduza ao menos HTML, por favor). A segunda é o mesmo cálculo, porém uma procedure simplificada, para ser executada manualmente e que retorna uma tabela com todos os registros por linha, para visualizar no resultado da query, ou copiar e colar para uma planilha, por exemplo.&lt;/p&gt; &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;* Importante &lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;- ambas as procedures podem ser salvas e executas em qualquer banco de dados, isso é indiferente.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;- Para a utilização do primeiro modelo, será necessário conhecimento em JOBS (criar job) e DATABASE MAIL (serviço ativo e conta SMTP devidamente configurada). &lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Então vamos começar pelo procedimento que envia o relatório por email. Observe os comentários no código para melhores orientações sobre como personalizar a execução de acordo com suas necessidades:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- exec sp_espacotabelabanco_email&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;create proc &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: teal&quot;&gt;&lt;font size=&quot;2&quot;&gt;sp_espacotabelabanco_email&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;as&lt;br /&gt; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: green&quot;&gt;&lt;font size=&quot;2&quot;&gt;/*&lt;br /&gt;  Fabiano Cores 02.01.2013&lt;br /&gt;  http://sqlburger.blogspot.com&lt;br /&gt;  Segunda versão do cálculo do tamanho das tabelas, que trata todos os bancos da instância onde &lt;br /&gt;  for executada.&lt;br /&gt;  &lt;br /&gt;  Versão 1.: Envio do relatório para um email pré-determinado&lt;br /&gt;  &lt;br /&gt;*/&lt;br /&gt; &lt;br /&gt;  &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;set nocount on&lt;br /&gt;&lt;br /&gt;  declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vname   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;max&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@email   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;max&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@assunto &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;200&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vtexto  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;max&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;create table &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTamTabela &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;db         &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;) null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;name       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;) null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;rows       int          &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;reserved   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;data       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;index_size &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;unused     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null )&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;create table &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTabelas &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;tabela &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;) null&lt;br /&gt;  )&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;create table &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#retorno &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;texto &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;max&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;) not null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;ordem &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;int identity&lt;br /&gt;  &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;insert into &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#retorno &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;texto&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;table border=1 cellpadding=2 cellspacing=0 width=100%&amp;gt;&#39;&lt;br /&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;insert into &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#retorno &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;texto&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;tr bgcolor=#000000&amp;gt;&#39;&lt;br /&gt;         &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=left  Valign=top&amp;gt;&amp;lt;font face=tahoma size=2 color=#FFFFFF&amp;gt;&amp;lt;b&amp;gt;Tabela&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;         &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=2 color=#FFFFFF&amp;gt;&amp;lt;b&amp;gt;Linhas&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;         &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=2 color=#FFFFFF&amp;gt;&amp;lt;b&amp;gt;Tamanho&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;         &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=2 color=#FFFFFF&amp;gt;&amp;lt;b&amp;gt;Dados&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;         &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=2 color=#FFFFFF&amp;gt;&amp;lt;b&amp;gt;Index&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;         &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=2 color=#FFFFFF&amp;gt;&amp;lt;b&amp;gt;Livre&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;         &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/tr&amp;gt;&#39;&lt;br /&gt;             &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0 &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;cursor local fast_forward read_only for&lt;br /&gt;    select &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;name&lt;br /&gt;     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from master&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;..&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: lime&quot;&gt;&lt;font size=&quot;2&quot;&gt;sysdatabases&lt;br /&gt;    &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;/* ESPECIFIQUE AQUI AS EXCEÇÕES PARA CÁLCULO */ &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;where &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;not in (&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;master&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;tempdb&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;model&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;msdb&#39;&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;order by &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;name&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;open &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;while &lt;/span&gt;0 &lt;span style=&quot;color: gray&quot;&gt;=&lt;/span&gt;0 &lt;br /&gt;  &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;begin&lt;br /&gt;    fetch next from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0 &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;into &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;@@fetch_status &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt;&amp;gt; &lt;/span&gt;0 &lt;/font&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;break&lt;br /&gt;    &lt;br /&gt;    truncate table &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTabelas&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;insert into &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#retorno &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;texto&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;tr bgcolor=#900000&amp;gt;&amp;lt;td colspan=6&amp;gt;&amp;lt;font face=tahoma size=2 color=#ffffff&amp;gt;DB: &amp;lt;b&amp;gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#39;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&lt;br /&gt;        &lt;br /&gt;          insert into #tmpTabelas (tabela)&lt;br /&gt;            select name&lt;br /&gt;              from [&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;]..sysobjects&lt;br /&gt;             where type = &#39;&#39;U&#39;&#39;&lt;br /&gt;            &lt;br /&gt;            &#39;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;      &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1 &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;cursor local fast_forward read_only for&lt;br /&gt;      select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;tabela &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTabelas&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;order by &lt;/span&gt;1&lt;br /&gt;   &lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;open &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;while &lt;/span&gt;1 &lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;1&lt;br /&gt;    &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;begin&lt;br /&gt;      fetch next from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1 &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;into &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;@vname&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;@@fetch_status &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt;&amp;gt; &lt;/span&gt;0 &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;break&lt;br /&gt;      &lt;br /&gt;      select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&lt;br /&gt;        &lt;br /&gt;          insert into #tmpTamTabela (name, rows, reserved, data, index_size, unused)&lt;br /&gt;            exec [&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;]..sp_spaceused &#39;&#39;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vname&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&#39;&lt;br /&gt;            &lt;br /&gt;          update #tmpTamTabela&lt;br /&gt;             set db = &#39;&#39;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&#39;&lt;br /&gt;           where db is null&lt;br /&gt;            &lt;br /&gt;            &#39;&lt;br /&gt;      &lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: gray&quot;&gt;&lt;font size=&quot;2&quot;&gt;)&lt;br /&gt;      &lt;br /&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;end&lt;br /&gt;    close &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;deallocate &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1    &lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;insert into &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#retorno &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;texto&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: gray&quot;&gt;&lt;font size=&quot;2&quot;&gt;)&lt;br /&gt;      &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;/* altere aqui a quantidade de tabelas a ser exibida no relatório */&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select top &lt;/span&gt;10 &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;tr&amp;gt;&#39;&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=left Valign=top&amp;gt;&amp;lt;font face=tahoma size=1&amp;gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=1&amp;gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;rows&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=1&amp;gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;reserved&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=1&amp;gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=1&amp;gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;index_size&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;  &amp;lt;td align=right Valign=top&amp;gt;&amp;lt;font face=tahoma size=1&amp;gt;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;unused&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&#39;&lt;br /&gt;           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/tr&amp;gt;&#39;&lt;br /&gt;        &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTamTabela&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;where &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;db &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;order by &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;reserved&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; KB&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)) &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;desc  &lt;br /&gt;&lt;br /&gt;  end&lt;br /&gt;  close &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;deallocate &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;insert into &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#retorno &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;texto&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&amp;lt;/table&amp;gt;&#39;&lt;br /&gt;&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp2 &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;cursor local fast_forward read_only for&lt;br /&gt;    select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;texto &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#retorno &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;order by &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;ordem&lt;br /&gt;    &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;open &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp2&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;while &lt;/span&gt;1 &lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;1&lt;br /&gt;  &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;begin&lt;br /&gt;    fetch next from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp2 &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;into &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;@vtexto&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;@@fetch_status &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt;&amp;gt; &lt;/span&gt;0 &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;break&lt;br /&gt;    &lt;br /&gt;    select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@email &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;isnull&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@email&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vtexto&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: gray&quot;&gt;&lt;font size=&quot;2&quot;&gt;)&lt;br /&gt;    &lt;br /&gt;  &lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;end&lt;br /&gt;  close &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp2&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;deallocate &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp2&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;set &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@assunto &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Relatório tabelas - &#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;@@SERVERNAME&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;exec &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;msdb&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;dbo&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: maroon&quot;&gt;sp_send_dbmail &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@profile_name           &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;=  &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;atlanta&#39;&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;br /&gt;                               &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@recipients             &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;=  &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;fbcores@gmail.com&#39;&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;br /&gt;                               &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@copy_recipients        &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;=  &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;fabiano.cores@nms.com.br&#39;&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;br /&gt;                               &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@blind_copy_recipients  &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;=  &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;br /&gt;                               &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@subject                &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;=  &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@assunto&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;br /&gt;                               &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@body                   &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;=  &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@email&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;br /&gt;                               &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@body_format            &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;=  &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;HTML&#39;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Não vou entrar em detalhes em como se utiliza a função de email ou como se cria uma JOB no SQL. Creio que sejam assuntos para outro artigo. Existem muito conteúdo explicativo sobre como ativar e utilizar o DATABASE MAIL e o SQL SERVER AGENT, basta dar uma procurada na internet. Mas se tiverem dificuldades em concluir essa configuração, me avisem pra eu saber se é necessário ou não fazer um artigo específico para ensinar como utilizar essas ferramentas.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A imagem abaixo é a visualização do relatório no meu tablet. No celular também ficou bem legal:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaIRF6DrP2xU71iok3Zh4_krMbODNNDnx9AQZx9tujE0nXWDuBPyVeoOXnU8Jofy6cMapBnCklmM5g7YVeRw-nN3xyCzMISZO8p_unu1AX3okygTov-nr2TbHOV9eeRHfdpLujQhUPP7aK/s1600-h/image%25255B4%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiig1HDJPbkK6F2MbOGIq2w6EbvgNIPCE5EHFO9s3nAIz78uK-0yjtuRQ9WrrtqsimvYvvbl2OrkvBcVvkV3or9tladZdnv2JfuTdrvI6AADa-cmbUfiN01PeCne87V27G50yDaQnzNe5R2/?imgmax=800&quot; width=&quot;890&quot; height=&quot;557&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;O segundo exemplo, é uma versão simplificada do procedimento, que não trata a formatação de texto nem nada parecido. É uma procedure para ser executada manualmente sempre que o administardor quiser consultar os tamanhos das tabelas:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- exec sp_espacotabelabanco&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;create proc &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: teal&quot;&gt;&lt;font size=&quot;2&quot;&gt;sp_espacotabelabanco&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;as&lt;br /&gt; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: green&quot;&gt;&lt;font size=&quot;2&quot;&gt;/*&lt;br /&gt;  Fabiano Cores 02.01.2013&lt;br /&gt;  http://sqlburger.blogspot.com&lt;br /&gt;  Segunda versão do cálculo do tamanho das tabelas, que trata todos os bancos da instância onde &lt;br /&gt;  for executada.&lt;br /&gt;  &lt;br /&gt;  Versão 2: simplificada, para execução manual&lt;br /&gt;  &lt;br /&gt;*/&lt;br /&gt; &lt;br /&gt;  &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;set nocount on&lt;br /&gt;&lt;br /&gt;  declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vname   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;max&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;create table &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTamTabela &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;db         &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;) null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;name       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;) null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;rows       int          &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;reserved   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;data       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;index_size &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null&lt;br /&gt;  , &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;unused     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;25&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)  null )&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;create table &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTabelas &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;tabela &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;100&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;) null&lt;br /&gt;  )&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0 &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;cursor local fast_forward read_only for&lt;br /&gt;    select &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;name&lt;br /&gt;     &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from master&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;..&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: lime&quot;&gt;&lt;font size=&quot;2&quot;&gt;sysdatabases&lt;br /&gt;    &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;/* ESPECIFIQUE AQUI AS EXCEÇÕES PARA CÁLCULO */ &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;where &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;not in (&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;master&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;tempdb&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;model&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;msdb&#39;&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;order by &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;name&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;open &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;while &lt;/span&gt;0 &lt;span style=&quot;color: gray&quot;&gt;=&lt;/span&gt;0 &lt;br /&gt;  &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;begin&lt;br /&gt;    fetch next from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0 &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;into &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;@@fetch_status &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt;&amp;gt; &lt;/span&gt;0 &lt;/font&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;break&lt;br /&gt;    &lt;br /&gt;    truncate table &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTabelas&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&lt;br /&gt;        &lt;br /&gt;          insert into #tmpTabelas (tabela)&lt;br /&gt;            select name&lt;br /&gt;              from [&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;]..sysobjects&lt;br /&gt;             where type = &#39;&#39;U&#39;&#39;&lt;br /&gt;            &lt;br /&gt;            &#39;&lt;br /&gt;    &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql&lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: gray&quot;&gt;)&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;declare &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1 &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;cursor local fast_forward read_only for&lt;br /&gt;      select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;tabela &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTabelas&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;order by &lt;/span&gt;1&lt;br /&gt;   &lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;open &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;while &lt;/span&gt;1 &lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;1&lt;br /&gt;    &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;begin&lt;br /&gt;      fetch next from &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1 &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;into &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;@vname&lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;@@fetch_status &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt;&amp;gt; &lt;/span&gt;0 &lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;break&lt;br /&gt;      &lt;br /&gt;      select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;= &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&lt;br /&gt;        &lt;br /&gt;          insert into #tmpTamTabela (name, rows, reserved, data, index_size, unused)&lt;br /&gt;            exec [&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;]..sp_spaceused &#39;&#39;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vname&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&#39;&lt;br /&gt;            &lt;br /&gt;          update #tmpTamTabela&lt;br /&gt;             set db = &#39;&#39;&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@vbase&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) + &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&#39;&lt;br /&gt;           where db is null&lt;br /&gt;            &lt;br /&gt;            &#39;&lt;br /&gt;      &lt;br /&gt;      &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;exec&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;@sql&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: gray&quot;&gt;&lt;font size=&quot;2&quot;&gt;)&lt;br /&gt;      &lt;br /&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;end&lt;br /&gt;    close &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp1&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;deallocate &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: teal&quot;&gt;&lt;font size=&quot;2&quot;&gt;cp1    &lt;br /&gt;    &lt;br /&gt;  &lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;end&lt;br /&gt;  close &lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0&lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;deallocate &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;cp0&lt;br /&gt;  &lt;br /&gt;  &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;select &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;db &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;as &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Banco&#39;&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;as &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Nome&#39;&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;rows as &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Linhas&#39;&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;reserved&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; KB&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)) &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;as &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Tamanho total&#39;&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; KB&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;as &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Dados&#39;&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;index_size&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; KB&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;as &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Index&#39;&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;unused&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; KB&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;as &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Não utilizado&#39;&lt;br /&gt;    &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;from &lt;/span&gt;&lt;/font&gt;&lt;font size=&quot;2&quot;&gt;&lt;span style=&quot;color: teal&quot;&gt;#tmpTamTabela&lt;br /&gt;   &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;order by &lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;db&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: teal&quot;&gt;reserved&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; KB&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)) &lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;font size=&quot;2&quot;&gt;desc  &lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Esta procedure acima retorna o resultado da seguinte forma:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNT5IOjV0J0lYPqkcylxYU1FE1V5mVkjYm9zfd3VicfMnTLWdYExcm3Nzfm8-pBrPaZW8k2ORNDLScXWQYa5WP_6JY14-MZGanYdfp2nGPbL3mhe0CSNehOQ2LlgQmQEOsg_kRpOq4wHzx/s1600-h/image%25255B24%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNaS8Jtd66XZjKfLGrm7at9Yz2Z_XypkgG6ZQqmGSsJmYWz1fYu7ap4a-Xes8y967LZ_5Xs8nnfD4lFY9yvK5XhkUhZVtCzhJOJjJMiNNCyOLilklGBoxoP_kHskcAhQlj9rsmNVVj71Wo/?imgmax=800&quot; width=&quot;884&quot; height=&quot;502&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;Infelizmente não estou tendo tempo para escrever mais artigos, mas espero ter ajudado com este, tentei simplificar o máximo possível, só copiar, colar e desfrutar.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;E feliz 2013!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7J3zJZqvfxdMWQVGnDV47uH1jHjmCgpOsDTzPDseeyhAG7mDdth5h3ZdOBojvH2qJV4dNHgrJ9pwORywqXGDFnNciFsw9I1w_R1-eZfr7UPVuHtr078IzzgMx1I3fvAiE8TPngEIvZtkc/s1600-h/tomate_dancando%25255B2%25255D.gif&quot;&gt;&lt;img style=&quot;display: inline&quot; title=&quot;tomate_dancando&quot; alt=&quot;tomate_dancando&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxfhY7GqIBjErUm1FsGK8tARU45t80qKH6A2X1HE99dzd6NmNwqvn38knv1hRwXMOlWkEmx1e-hJ_sVt0nZM-maMFvRWJ03f6lG79mX0A4PGndStpO-QMNzhxHxlINdg74v9HOlunBQj-g/?imgmax=800&quot; width=&quot;32&quot; height=&quot;32&quot;&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/3119137253989613655/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2013/01/tamanho-de-todas-as-tabelas-de-todos-os.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/3119137253989613655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/3119137253989613655'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2013/01/tamanho-de-todas-as-tabelas-de-todos-os.html' title='Tamanho de todas as tabelas de todos os bancos de dados de uma instância SQL Server'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFgcdZFMmjS9AB5O2Y9In7Pl-ZkJfzelCDpwHthFJkkrf8EC9ohp8w3ApOFo9Qo-9jCQGvxLaJWex0doVn9XwqUGI_TWTx1r4QT1ozzGjdS0FpaQMWeWldOpG_RAY0BTa75iAni05nHiGh/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-704722180709298764</id><published>2012-02-25T04:19:00.001-02:00</published><updated>2012-02-25T04:23:50.690-02:00</updated><title type='text'>Round() – Arredondar ou truncar os decimais?</title><content type='html'>&lt;p&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px&quot; border=&quot;0&quot; src=&quot;http://t1.gstatic.com/images?q=tbn:ANd9GcQ0NiK-ihK4U3spyk72VzDuReGFe50kqCAPQ02yRCX0rzK-o9et&quot;&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Esta dica vai para todos os colegas que trabalham com SQL Server e precisam trabalhar arredondamentos. Creio que a maioria dos programadores sql conhecem a função ROUND() que faz o arredondamento de casas decimais de um determinado número. Porém, há alguns dias atrás, precisei de um resultado um pouco diferente… como estamos alterando algumas funções que envolvem a emissão de nota fiscal eletrônica, o tratamento aplicado nos valores exigiu uma extensão do comando ROUND() que talvez muita gente não conheça, mas extremamente útil.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Em uma nova fiscal eletrônica, todos os valores unitários devem conter 4 casas decimais. Porém os totais e valores de impostos devem ser apenas com 2 casas. E tem mais um detalhe: na multiplicação da quantidade pelo valor unitário, o valor total não deve ser arredondado, e sim ter seus decimais “truncados”. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;original = 2,4567&lt;br&gt;arredondado = 2,46&lt;br&gt;truncado = 2,45&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Já vi muitos códigos inusitados para realizar esta tarefa. Funções cabulosas e cheias de “if”. Mas aqui vai a dica, vamos entender melhor o comando round():&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0080c0&quot; size=&quot;4&quot;&gt;&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0080c0&quot; size=&quot;4&quot;&gt;- Sintaxe&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;hr&gt;  &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;pre&gt;ROUND (numeric_expression , length [ ,function ] )&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#0080c0&quot; size=&quot;4&quot;&gt;- Argumentos&lt;/font&gt;&lt;/strong&gt; &lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;numeric_expression &lt;br /&gt;&lt;dd&gt;&lt;br /&gt;&lt;p&gt;É uma expressão da categoria de tipo de dados numéricos exatos ou aproximados, com exceção do tipo de dados bit. &lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;dt&gt;length &lt;br /&gt;&lt;dd&gt;&lt;br /&gt;&lt;p&gt;É a precisão à qual a numeric_expression deve ser arredondada. length deve ser uma expressão do tipo tinyint, smallint ou int. Quando length for um número positivo, numeric_expression é arredondada para o número de posições decimais especificado por length. Quando length for um número negativo, numeric_expression é arredondada no lado esquerdo do ponto decimal, conforme especificado por length. &lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;dt&gt;function &lt;br /&gt;&lt;dd&gt;&lt;br /&gt;&lt;p&gt;É o tipo de operação a ser executada. function deve ser tinyint, smallintou int. Quando function é omitido ou tem um valor 0 (padrão), a numeric_expression é arredondada. Quando um valor diferente de 0 é especificado, numeric_expression é truncado.&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;(fonte: msdn)&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Veja um exemplo abaixo:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fcfe92f7-a143-40b6-8d41-877828eca5c4&quot; class=&quot;wlWriterSmartContent&quot;&gt;&lt;br /&gt;&lt;div style=&quot;border-bottom: #000080 1px solid; border-left: #000080 1px solid; font-family: &#39;Courier New&#39;, courier, monospace; color: #000; font-size: 10pt; border-top: #000080 1px solid; border-right: #000080 1px solid&quot;&gt;&lt;br /&gt;&lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt;&lt;br /&gt;&lt;ol style=&quot;padding-bottom: 0px; margin: 0px 0px 0px 2em; padding-left: 5px; padding-right: 0px; white-space: nowrap; background: #ffffff; padding-top: 0px&quot;&gt;&lt;br /&gt;&lt;li&gt;&amp;nbsp; &lt;span style=&quot;color: #0000ff&quot;&gt;declare&lt;/span&gt; @vl &lt;span style=&quot;color: #0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;19&lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt;9&lt;span style=&quot;color: #808080&quot;&gt;)&lt;/span&gt; &lt;br /&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;li&gt;&amp;nbsp; &lt;span style=&quot;color: #0000ff&quot;&gt;select&lt;/span&gt; @vl &lt;span style=&quot;color: #808080&quot;&gt;=&lt;/span&gt; 2.4567 &lt;br /&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp; &lt;li&gt;&amp;nbsp; &lt;span style=&quot;color: #0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color: #ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;12&lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color: #808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color: #ff00ff&quot;&gt;round&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;@vl&lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color: #808080&quot;&gt;))&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;&#39;arredondado&#39;&lt;/span&gt; &lt;br /&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;12&lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color: #808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color: #ff00ff&quot;&gt;round&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;@vl&lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; 1&lt;span style=&quot;color: #808080&quot;&gt;))&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;&#39;truncado&#39;&lt;/span&gt; &lt;br /&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;color: #808080&quot;&gt;(&lt;/span&gt;12&lt;span style=&quot;color: #808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color: #808080&quot;&gt;),&lt;/span&gt; @vl&lt;span style=&quot;color: #808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;&#39;convertido&#39;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br&gt;&amp;nbsp;&lt;img alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkPuYhF19HBq35fiqeulQIDB8dPcgCW5q2OU7633H31QGma6jXiAZchjyhVsw2Z0xwa-ywNqjUftnv-riZsnDwYevm-Hme0EUE1L6nNl0Pn0hxZK2EJXoWQodtL1AyC9F1wdHc56PTutnU/?imgmax=800&quot;&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br&gt;Coloquei também uma terceira coluna, onde somente converto para decimal(12,2), porém o SQL por padrão arredonda. A forma mais eficiênte é através do comando Round().&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;file:///C:/Users/Fabiano/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles5485D73B/sorriso_1612.gif&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;sorriso_161&quot; border=&quot;0&quot; alt=&quot;sorriso_161&quot; src=&quot;file:///C:/Users/Fabiano/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles5485D73B/sorriso_161_thumb.gif&quot; width=&quot;15&quot; height=&quot;15&quot;&gt;&lt;/a&gt;&amp;nbsp; That’s all folks!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/704722180709298764/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2012/02/round-arredondar-ou-truncar-os-decimais.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/704722180709298764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/704722180709298764'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2012/02/round-arredondar-ou-truncar-os-decimais.html' title='Round() – Arredondar ou truncar os decimais?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkPuYhF19HBq35fiqeulQIDB8dPcgCW5q2OU7633H31QGma6jXiAZchjyhVsw2Z0xwa-ywNqjUftnv-riZsnDwYevm-Hme0EUE1L6nNl0Pn0hxZK2EJXoWQodtL1AyC9F1wdHc56PTutnU/s72-c?imgmax=800" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-4036510680944388200</id><published>2011-08-14T01:55:00.001-03:00</published><updated>2011-08-14T02:02:07.904-03:00</updated><title type='text'>Importar um arquivo texto direto para o SQL Server</title><content type='html'>&lt;p&gt;Imagine que você tem um arquivo texto, delimitado por ponto-e-vírgula (um CSV) e você deseja inserí-lo diretamente dentro de uma tabela. Porém, eu não vou mostrar como fazer isso no Management Studio, que é fácil. Eu vou mostrar como fazer isso via T-SQL! E porque? Bom, para mim isto foi muito útil para automatizar uma rotina de comunicação entre sistemas, rodando automaticamente.&lt;/p&gt; &lt;p&gt;Vamos então para a parte prática. É muito simples, primeiro analise o arquivo texto a ser importado, e identifique todas as colunas do arquivo com seu respectivo tipo de dado (data, texto, número, money, decimal, etc). É muito importante este trabalho de análise, pois será necessário criar uma tabela exatamente com as mesmas especificações.&lt;/p&gt; &lt;p&gt;Vamos ver um exemplo, lançamentos contábeis. Eu tenho aqui um arquivo texto, delimitado por vírgulas gerado a partir de um sistema ERP tosco em que a contabilidade não funciona, e nós precisávamos importar para um que funcionasse, de fato, porém em SQL Server. Este tipo de coisa sempre surge no meu dia a dia, a quantidade de sistemas e a necessidade de comunicação entre eles tem crescido exponencialmente.&lt;/p&gt; &lt;p&gt;Uma sugestão é que sempre (quando possível) abra o arquivo no excel, estude a estrutura das colunas e seus valores, veja se não existem coisas que podem impactar na sua importação (como por exemplo aspas simples ‘ , arquivo delimitado por ponto e vírgula e o infeliz usar ponto-e-vírgula na observação do lançamento e o sistema não tratar isso) entre outras coisas… o excel ajuda muito, nomeie as colunas, insira observações, planeje, para depois partir para&amp;nbsp; parte prática.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;*desculpem pela formatação do blog, estou revendo este layout para permitir inserir grandes imagens… &lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Vamos olhar o arquivo:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7jHqzl1hyqvRV5A7jP-4CvvzzUBmOFunldTxsVXE7qkm7VUVmQrvwbJEHTLCudaEHLv1uRaYlVSLOf90YFxNnK7NKoR-f0atBxlaA-kqPv_S1l2AzCo6ZTL_Ujh2UElv6217qyO198GaY/?imgmax=800&quot; width=&quot;807&quot; height=&quot;258&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Então temos algum punhado de colunas, algumas DATETIME compatível com SQL Server, outros valores texto e money, e assim por diante. Para que possamos executar esta tarefa diretamente via T-SQL, é necessário criar a tabela com precisão, para que não ocorram erros de importação, que podem comprometer a qualidade da ferramenta desenvolvida. Para o exemplo acima, eu criei a seguinte tabela:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6a3111e1-b0e0-4daf-b662-be0298ac3d62&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;TABLE&lt;/span&gt; &lt;span style=&quot;color:#008080&quot;&gt;[dbo]&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#008080&quot;&gt;[ctb_movimento_202011]&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 0]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 1]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 2]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 3]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;datetime&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 4]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 5]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;500&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 6]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 7]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;money&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 8]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 9]&lt;/span&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;50&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 10]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 11]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 12]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 13]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 14]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 15]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 16]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 17]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 18]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 19]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008080&quot;&gt;[Coluna 20]&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;bigint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Coisas de programador… coloquei estes nomes de coluna por que previamente havia feito o mapeamento em outra ferramenta (excel). Enfim, a parte prática. Para importar o arquivo, basta utilizar uma ferramenta muito útil, chamada BULK INSERT (inclusive, muito mais ampla do que este simples exemplo). Bulk significa “grande volume”, e Insert é inserir. Então vamos inserir um grande volume de dados em uma tabela. &lt;/p&gt; &lt;p&gt;Vamos fazer um único exemplo, porém acredito que seja o mais comum deste tipo de aplicação, o arquivo delimitado por um caracter de controle. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:221bbea7-3c02-447c-a3c0-a077ebdfc145&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;BULK&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;INSERT&lt;/span&gt; &lt;span style=&quot;color:#008080&quot;&gt;ctb_movimento_202011&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;FROM&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;C:&amp;#92;Users&amp;#92;nms.cores&amp;#92;Desktop&amp;#92;districomp-20052011&amp;#92;Cordilheira&amp;#92;CTBMOV_D.txt&amp;#39;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;WITH&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;color:#0000ff&quot;&gt;FIELDTERMINATOR&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;color:#0000ff&quot;&gt;ROWTERMINATOR&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#92;n&amp;#39;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Este comando informa o nome da tabela que deverá ser inserida a informação (no caso, ctb_movimento_202011), a cláusula from (origem dos dados), onde especificamos a localização do arquivo texto, e logo em seguida alguns parâmetros para esta importação (dentro do WITH), como o FIELDTERMINATOR, que especifica qual é o delimitador para cada coluna (no caso, ponto e vírgula), e também qual é o delimitador de cada linha (\n no caso separado por salto de linha, veja no Books Online as opções disponíveis).&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Voilà&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC71YgwtJF6GenDJNAF8NdCEH4Xny3ei6CmYKVHni0BrrHS-ijOUnyKTD6NQE6KacXQ0q5wPabTNa3ibLhZGY7_yQL5o2MmAVk_RjX2aFIsEHqY4VxCmsGhaz7OIXFEbJdu2OH8OqtHK92/?imgmax=800&quot; width=&quot;307&quot; height=&quot;164&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcJugkpWo8cqGTEu9iG7JblNPZGxJxDFZSFlUMcIPEnxJE1ufylKTqVMIqYcUuCr722J7SFOwd2_w2Ex0MLuMkFT1XqRZ0Ek5FWG4ypOXxnKTsJITda7dHJydq049s1ClNOTyFYQkKTbT2/?imgmax=800&quot; width=&quot;711&quot; height=&quot;465&quot;&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Espero que seja útil!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieGEwKlN6mnkcp1rni8Huw5_UUwpg8DIV9a3zamwtorZ04J020Ooe6FgFiSIqOIOd_VLZrymHrjpBwqtsEsnTpGOSSB_00zOnszgHDpKK-UWe7uNzB4CIhi-zf8SgrH7pe4-3H7jkpv4F9/?imgmax=800&quot; width=&quot;36&quot; height=&quot;36&quot;&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/4036510680944388200/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2011/08/importar-um-arquivo-texto-direto-para-o.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/4036510680944388200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/4036510680944388200'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2011/08/importar-um-arquivo-texto-direto-para-o.html' title='Importar um arquivo texto direto para o SQL Server'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7jHqzl1hyqvRV5A7jP-4CvvzzUBmOFunldTxsVXE7qkm7VUVmQrvwbJEHTLCudaEHLv1uRaYlVSLOf90YFxNnK7NKoR-f0atBxlaA-kqPv_S1l2AzCo6ZTL_Ujh2UElv6217qyO198GaY/s72-c?imgmax=800" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-827915170831827820</id><published>2011-06-26T22:10:00.001-03:00</published><updated>2011-06-26T22:10:30.063-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Avançado"/><category scheme="http://www.blogger.com/atom/ns#" term="Projetos"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Automação de impressoras térmicas diretamente pelo SQL Server</title><content type='html'>&lt;p&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;*Este artigo se aplica a versões 2005 ou superior do SQL Server. Na versão 2000, haverá restrições de 8000 caracteres na geração de arquivos, devido a limitação do varchar(max) do SQL 2000.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O título pode soar um tanto estranho. Mas o fato é que esta se revelou uma grande solução “surpresa” durante o desenvolvimento de um projeto de automação através de coletores de dados.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Para explicar melhor o contexto onde isto foi adotado, tudo começou durante a implantação de um projeto de automação na conferência de mercadorias, confecção de embalagens e expedição de volumes. Adotamos 3 coletores ARGOX PT-60 (fig.1) com Windows CE 5.0 e conexão wireless e 3 impressoras ZEBRA GK420t (fig.2) instaladas em um único computador dedicado, compartilhando as impressoras pela rede. &lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/em&gt;&lt;/p&gt; &lt;div align=&quot;center&quot;&gt; &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;344&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;img src=&quot;http://t1.gstatic.com/images?q=tbn:ANd9GcQoYqlbnJ4EoM2KAFSPWk9SpUICZxkvCVtU3q-yV0p4AfSG7Jx_cA&quot; width=&quot;131&quot; height=&quot;169&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;178&quot;&gt;&lt;img src=&quot;http://t0.gstatic.com/images?q=tbn:ANd9GcTLMrBtKNEm8tx8JGpepBr3oQvwkBMFLmNy-KwUep6BXqiEuU1B&quot; width=&quot;152&quot; height=&quot;152&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;164&quot;&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;Fig.1 Coletor Argox PT-60 &lt;/font&gt;&lt;/em&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;178&quot;&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;Fig.2 Impressora Térmica ZEBRA GK420t&lt;/font&gt;&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O sistema, nomeado ARKAB, foi desenvolvido em vb.net utilizando o MS Compact framework. Basicamente, o sistema atuava de forma on-line com o servidor SQL, buscando dados referente os pedidos de venda, e alimentando tabelas durante a conferência, possibilitando que dois operadores pudessem conferir o mesmo pedido. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Este sistema permite conferir as mercadorias que estão no pedido de venda. O separador pega todos os produtos utilizando o romaneio de separação (fig.3), e entrega em um carrinho para o conferente. Este identifica o pedido no coletor através de código de barras (fig.3), identifica-se através do seu crachá pessoal e também identifica qual impressora irá utilizar (código de barras na impressora, conf. fig.4).&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;div align=&quot;center&quot;&gt; &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;620&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;365&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiedVx4kCPPyU7HxvggPQRd86vmEJ4K9NkYYyAA7FTRiEo4B6qDo0zhB85PlEext4BAMq1HQ8Z62p_pKi2otKEl3MTca1EPtF-CLSSxoK5aqxq5PvFDkAlmfaXoA3C3kkgFtsY_MPOFmeK8/?imgmax=800&quot; width=&quot;359&quot; height=&quot;233&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;253&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRtyQXM7hYIOho9SKYtHIaZjGzGckci3KbEQ0EYyoAaDTz4tuLZ49W_e63Oom8xBvhStX6q_vJwE89WiLGRuzftFd6B7NuoSU9oYm9GX4HcoaUuAyhytt3F-vzu5L9_ZKauh4G_o_EoMFK/?imgmax=800&quot; width=&quot;247&quot; height=&quot;232&quot;&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;365&quot;&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;Fig.3 Romaneio de Separação&lt;/font&gt;&lt;/em&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;253&quot;&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;Fig.4 Identificação da impressora&lt;/font&gt;&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;p align=&quot;left&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mas aí surgiram problemas, que prejudicaram o funcionamento do projeto. Durante o final do mês, a empresa realiza muito processamento no servidor na geração de lotes contábeis, fechamentos fiscais, emissão de DREs pesadas e abarrotadas de dados. E os coletores começaram a ficar muito lentos, prejudicando significativamente a performance da equipe de separação. &lt;/p&gt; &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;675&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;517&quot;&gt; &lt;p align=&quot;justify&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Outro problema que ocorria sempre era ao enviar uma impressão pela rede. De alguma forma, o Windows CE exibe uma messagebox com o resultado do comando de impressão ao usuário, o que atrapalha (e muito!) durante a conferência. A mensagem aparece na tela, o usuário não percebe, e ele bipa um produto. Como no final do comando sempre tem um ENTER, a tela de mensagem é fechada, e o usuário nem teria percebido que aquele produto bipado somente fechou a mensagem, e não foi processado pelo software. Isto acontecia por que eu gerava um arquivo texto temporário no coletor, e o copiava pela rede diretamente para a impressora, e o próprio Windows CE gerencia esta mensagem, o que parece não ser possível desativar.&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;156&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3seLNYphNuorDLoeTHzv5dUUjLbVDhyphenhyphenRUsXFo8D9tahyphenhyphenZd4NllwDwAOwaRgdhLrYLlN8Bmi5kAvwY1MAg93H4WD4yPV5T6ffjfMMk-cHzA5XnCvOGce6fpBK9TxuOSg3nlssAq8yfyj4Y/?imgmax=800&quot; width=&quot;264&quot; height=&quot;171&quot;&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Para resolver isto, modifiquei o sistema do coletor, fazendo com que carregasse em DATASET todos os dados necessários para realizar a conferência, de forma que acessasse o banco de dados duas vezes (na abertura e no fechamento da conferência), e não mais em cada operação. O aumento de performance foi absoluto, o coletor não dependia mais da rede para ter um bom desempenho ou não. Mas ainda restava a etiqueta. Como fazer a impressão de forma que não aparecesse esta mensagem de status de impressão ao usuário?&lt;/p&gt; &lt;p&gt;Resolvi então fazer a impressão da etiqueta térmica utliizando o próprio SQL Server, de forma que o servidor enviasse o comando para a impressora, e não mais o coletor. A solução aparentemente muito simples e funcional me fez perceber que podemos fazer qualquer sistema que utilize base SQL Server imprimir diretamente em impressoras térmicas de linguagem específica (PPLA, PPLB, ZPL, etc). &lt;/p&gt; &lt;p&gt;Para isso, vamos dividir esta informação em três partes fundamentais: geração dos dados da etiqueta, salvar estes dados em um arquivo texto e finalmente copiar este arquivo diretamente à impressora desejada pela rede.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1. Geração dos dados da etiqueta&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;O primeiro procedimento que montei é o que realiza a busca de todas as informações no banco de dados para a impressão da etiqueta, e monta dinamicamente todos os comandos ZPL necessários para a impressão da etiqueta:&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:80688469-c68e-41b6-be09-cf3e194aaa1d&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 3em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- set nocount on&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- exec spArkabEtiqueta 9&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt;  [dbo]&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;[spArkabEtiqueta]&lt;/li&gt; &lt;li&gt;  @id_volume &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @cd_impressora &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Autor: Fabiano Cores&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Data : 06/2011&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Objetivo: Gera a etiqueta através de comandos ZPL, salva em arquivo&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  através de automação OLE e lança o arquivo diretamente para a impressora&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  térmica na rede através de simples compartilhamento, somente copiando&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  o arquivo para o dispositivo (como &amp;#92;&amp;#92;pc-na-rede&amp;#92;nome_imp_zebra)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  */&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @t &lt;span style=&quot;color:#0000ff&quot;&gt;table &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;texto &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8000&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null,&lt;/span&gt; ordem &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;identity&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @cd_empresa     &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @nr_pedido      &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @nr_volume      &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @qt_volume      &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @cd_usuario     &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @qt_pecas       &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @cliente        &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;60&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @transportadora &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;60&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @endereco       &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;200&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @complemento    &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;200&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @pedido         &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;20&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @volume         &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;20&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @responsavel    &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;50&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @data           &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;20&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @quantidade     &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;20&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @cdb            &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;50&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vtexto         &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8000&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @texto          &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @diretorio      &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;255&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @arquivo        &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;100&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @origem         &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;500&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @destino        &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;500&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @cd_empresa &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; cd_empresa&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @nr_pedido  &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; nr_pedido&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @nr_volume  &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; nr_volume&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @cd_usuario &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; cd_usuario&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @cdb        &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; cdb&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; ArkabVolume&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; id_volume   &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @id_volume&lt;/li&gt; &lt;li&gt;   &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @qt_pecas &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;sum&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;qt_item&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; arkabvolumeitem&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; id_Volume &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @id_volume&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @qt_volume &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(*)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; ArkabVolume&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; cd_empresa &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_empresa&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; nr_pedido  &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @nr_pedido&lt;/li&gt; &lt;li&gt;   &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @cliente &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cadastro&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;razao&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @transportadora &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;isnull&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;transp&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;razao&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @endereco &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cadastro&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;endereco&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @complemento &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;ltrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;isnull&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cadastro&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;complemento&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt; &lt;/li&gt; &lt;li&gt;           &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cidade&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;nome&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;/&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cidade&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_estado&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt;           &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; - &amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;left(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cadastro&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cep&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;5&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;-&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cadastro&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cep&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;3&lt;span style=&quot;color:#808080&quot;&gt;)))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @pedido &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;000000&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@nr_pedido&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; 6&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @volume &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;000&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@nr_volume&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;3&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#008000&quot;&gt;--  + &amp;#39;/&amp;#39; + right(&amp;#39;00&amp;#39; + rtrim(@qt_volume),2)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @responsavel &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;usuario&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;login&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @data &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(),&lt;/span&gt; 103&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;hour&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())),&lt;/span&gt;2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;h&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @quantidade &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@qt_pecas&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; PC&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; cadastro&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; cidade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; usuario&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; pedidovenda&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; cadastro transp&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; pedidovenda&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_cadastro &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; cadastro&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_cadastro&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; cidade&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_Cidade &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; cadastro&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_cidade&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; pedidovenda&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_empresa &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_empresa&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; pedidovenda&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;nr_pedido  &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @nr_pedido&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; usuario&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_usuario &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_usuario&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; pedidovenda&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_transportador &lt;span style=&quot;color:#808080&quot;&gt;*=&lt;/span&gt; transp&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_cadastro&lt;/li&gt; &lt;li&gt;     &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @texto &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^XA&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^MD10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^LT0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^JMA^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^MUd,200,200&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^LH6,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO20,7&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB780,625,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO20,70&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB645,120,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO20,7&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB780,70,70,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO660,70&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB140,562,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO20,275&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB235,160,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,305&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB215,120,120,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO250,275&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB180,160,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO260,305&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB160,120,120,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO425,275&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB240,85,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO425,355&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB240,80,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO425,430&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB240,75,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO425,500&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^GB240,132,5,,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO90,20,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ATN,30,20&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FR&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;DECORLUX MATERIAL ELETRICO LTDA&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,80,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;CLIENTE&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,103,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ATN,30,20&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;left(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@cliente&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; 29&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,138,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ATN,30,20&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;substring&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@cliente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 30&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 29&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,138,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ASN,30,20&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,200,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;TRANSPORTADORA&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,223,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ASN,30,20&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@transportadora&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,280,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;PEDIDO DE VENDA&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO40,290,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AVN,120,100&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FR&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@pedido&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO265,280,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;VOLUME&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO290,290,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AVN,120,100&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FR&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@volume&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO435,280,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;RESPONSAVEL&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO435,310,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ASN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@responsavel&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO435,360,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;DATA&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO435,385,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ASN,30,20&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@data&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO435,435,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;QUANTIDADE&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO435,460,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^ASN,30,20&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@quantidade&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO30,435,0&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^AQN,20,10&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;NOTA FISCAL E VISTO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FO690,97&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^BY2&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^BCR,100,Y,N,N&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FD&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@cdb&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^FS&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;^XZ&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Diretorio para gravar o arquivo temporário&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;set&lt;/span&gt; @diretorio &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;D:&amp;#92;Arkab&amp;#92;impressoes&amp;#92;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Definição do nome do arquivo, coloca dia, mes, ano,&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- hora, minuto, segundo e ID do volume.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @arquivo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;tmp&amp;#39;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;                  &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;day&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())),&lt;/span&gt;2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                  &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;month&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())),&lt;/span&gt;2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                  &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;year&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;()))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                  &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;hour&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())),&lt;/span&gt;2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                  &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;minute&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())),&lt;/span&gt;2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                  &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())),&lt;/span&gt;2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                  &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;_vol_&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@id_volume&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;.txt&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Gravo o arquivo&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spArkabGravaArquivo&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;    &lt;/span&gt;@texto&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @diretorio&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @arquivo&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Definição da origem e destino do arquivo salvo.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @origem &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@diretorio&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@arquivo&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Algo como &amp;#39;&amp;#92;&amp;#92;PC-CONF01&amp;#92;ZEBRA-SEP1&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @destino &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; caminho_de_rede&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; ArkabImpressora&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; cd_impressora &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_impressora&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Envio o arquivo texto pela rede diretamente na impressora térmica.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spArkabCopiaArquivo&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;    &lt;/span&gt;@origem&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @destino&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;Este procedimento coleta todos os dados, concatena em um varchar(max), e passa esta string para a segunda etapa, que é gravar este texto em um arquivo em uma pasta específica no servidor.&lt;/p&gt; &lt;p&gt;Exemplo do texto gerado pelo procedimento: &lt;/p&gt; &lt;p&gt; &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;503&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;501&quot;&gt; &lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;Courier New&quot;&gt;^XA&lt;br&gt;^MD10&lt;br&gt;^LT0&lt;br&gt;^JMA^FS&lt;br&gt;^MUd,200,200&lt;br&gt;^LH6,0&lt;br&gt;^FO20,7&lt;br&gt;^GB780,625,5,,0&lt;br&gt;^FS&lt;br&gt;^FO20,70&lt;br&gt;^GB645,120,5,,0&lt;br&gt;^FS&lt;br&gt;^FO20,7&lt;br&gt;^GB780,70,70,,0&lt;br&gt;^FS&lt;br&gt;^FO660,70&lt;br&gt;^GB140,562,5,,0&lt;br&gt;^FS&lt;br&gt;^FO20,275&lt;br&gt;^GB235,160,5,,0&lt;br&gt;^FS&lt;br&gt;^FO30,305&lt;br&gt;^GB215,120,120,,0&lt;br&gt;^FS&lt;br&gt;^FO250,275&lt;br&gt;^GB180,160,5,,0&lt;br&gt;^FS&lt;br&gt;^FO260,305&lt;br&gt;^GB160,120,120,,0&lt;br&gt;^FS&lt;br&gt;^FO425,275&lt;br&gt;^GB240,85,5,,0&lt;br&gt;^FS&lt;br&gt;^FO425,355&lt;br&gt;^GB240,80,5,,0&lt;br&gt;^FS&lt;br&gt;^FO425,430&lt;br&gt;^GB240,75,5,,0&lt;br&gt;^FS&lt;br&gt;^FO425,500&lt;br&gt;^GB240,132,5,,0&lt;br&gt;^FS&lt;br&gt;^FO90,20,0&lt;br&gt;^ATN,30,20&lt;br&gt;^FR&lt;br&gt;^FD&lt;br&gt;DECORLUX MATERIAL ELETRICO LTDA&lt;br&gt;^FS&lt;br&gt;^FO30,80,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;CLIENTE&lt;br&gt;^FS&lt;br&gt;^FO30,103,0&lt;br&gt;^ATN,30,20&lt;br&gt;^FD&lt;br&gt;TORNADO INDUSTRIA E PECAS LTD&lt;br&gt;^FS&lt;br&gt;^FO30,138,0&lt;br&gt;^ATN,30,20&lt;br&gt;^FD&lt;br&gt;A&lt;br&gt;^FS&lt;br&gt;^FO30,138,0&lt;br&gt;^ASN,30,20&lt;br&gt;^FD&lt;br&gt;^FS&lt;br&gt;^FO30,200,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;TRANSPORTADORA&lt;br&gt;^FS&lt;br&gt;^FO30,223,0&lt;br&gt;^ASN,30,20&lt;br&gt;^FD&lt;br&gt;NATALIN DA SILVA RAMOS&lt;br&gt;^FS&lt;br&gt;^FO30,280,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;PEDIDO DE VENDA&lt;br&gt;^FS&lt;br&gt;^FO40,290,0&lt;br&gt;^AVN,120,100&lt;br&gt;^FR&lt;br&gt;^FD&lt;br&gt;056783&lt;br&gt;^FS&lt;br&gt;^FO265,280,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;VOLUME&lt;br&gt;^FS&lt;br&gt;^FO290,290,0&lt;br&gt;^AVN,120,100&lt;br&gt;^FR&lt;br&gt;^FD&lt;br&gt;009&lt;br&gt;^FS&lt;br&gt;^FO435,280,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;RESPONSAVEL&lt;br&gt;^FS&lt;br&gt;^FO435,310,0&lt;br&gt;^ASN,20,10&lt;br&gt;^FD&lt;br&gt;AUTOMATICO&lt;br&gt;^FS &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;Courier New&quot;&gt;^FO435,360,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;DATA&lt;br&gt;^FS &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;Courier New&quot;&gt;^FO435,385,0&lt;br&gt;^ASN,30,20&lt;br&gt;^FD&lt;br&gt;26/06/2011 21h&lt;br&gt;^FS &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;Courier New&quot;&gt;^FO435,435,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;QUANTIDADE&lt;br&gt;^FS &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;Courier New&quot;&gt;^FO435,460,0&lt;br&gt;^ASN,30,20&lt;br&gt;^FD&lt;br&gt;1 PC&lt;br&gt;^FS &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;Courier New&quot;&gt;^FO30,435,0&lt;br&gt;^AQN,20,10&lt;br&gt;^FD&lt;br&gt;NOTA FISCAL E VISTO&lt;br&gt;^FS &lt;/font&gt; &lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;Courier New&quot;&gt;^FO690,97&lt;br&gt;^BY2&lt;br&gt;^BCR,100,Y,N,N&lt;br&gt;^FD&lt;br&gt;00020567830099699335&lt;br&gt;^FS&lt;br&gt;^XZ&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;Veja que depois defino qual o destino final do arquivo (no caso, uma impressora zebra na rede). No caso do sistema Arkab, a definição da impressora é dinâmica, no momento da abertura da conferência o usuário seleciona qual irá utilizar. Ao imprimir a etiqueta, o sistema passa para o procedimento como parâmetro (@cd_impressora) qual será a impressora que deverá enviar o comando. Uma simples tabela permite referenciar o código desta impressora ao seu caminho de rede.&lt;/p&gt; &lt;p&gt;E logo no final, temos o procedimento spArkabCopiaArquivo, que faz a cópia do arquivo do servidor para a impressora utilizando a rede. Vamos então falar de cada um deles agora.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;2. spArkabGravaArquivo&lt;/strong&gt; - Este procedimento grava o texto desejado em um arquivo em disco: &lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a239d544-e4f8-4a34-b86e-42dbcbf82f45&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; spArkabGravaArquivo&lt;/li&gt; &lt;li&gt;  @texto &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;--8000 in SQL Server 2000&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  @diretorio &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;255&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  @arquivo &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;100&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Autor: Fabiano Cores&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Data : 06/2011&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Objetivo: Permite gravar arquivos de texto em disco diretamente&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  através do T-SQL.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Observação importante: pode haver a necessidade de ativar a&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  opção &amp;#39;Ole Automation Procedures&amp;#39; no SQL Server através do comando&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  sp_reconfigure. Para isto, utilize o script abaixo:&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Mostrar opções avançadas.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  exec sp_configure &amp;#39;show advanced options&amp;#39;, 1&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Ativar a opção anterior&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  reconfigure&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Ativa a automação OLE&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  exec sp_configure &amp;#39;Ole Automation Procedures&amp;#39;, 1&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Reconfigura para aceitar a modificação&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  reconfigure&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  */&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @objFileSystem   &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @objTextStream   &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @hr              &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @fileAndPath     &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;80&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; @hr &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_OACreate&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Scripting.FileSystemObject&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @objFileSystem &lt;span style=&quot;color:#0000ff&quot;&gt;output&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @FileAndPath &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @diretorio &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#92;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; @arquivo&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; @hr &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 0 &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; @hr &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_OAMethod&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@objFileSystem&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;CreateTextFile&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @objTextStream &lt;span style=&quot;color:#0000ff&quot;&gt;output&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @FileAndPath&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 2&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; True&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; @hr&lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt;0&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; @hr &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_OAMethod&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@objTextStream&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Write&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;Null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @texto&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; @hr &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 0&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; @hr &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_OAMethod&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@objTextStream&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Close&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_OADestroy&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@objTextStream&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_OADestroy&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@objTextStream&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;3. spArkabCopiaArquivo&lt;/strong&gt; – Realiza a cópia do arquivo da etiqueta diretamente para a impressora:&lt;/p&gt; &lt;p&gt; &lt;p&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ced6e9b4-c6aa-4d17-87ba-596677980bd8&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- Para testar, copia o arquivo direto para impressora SEP1.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;exec spArkabCopiaArquivo &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;    &amp;#39;D:&amp;#92;Arkab&amp;#92;Impressoes&amp;#92;tmp26062011030828_vol_4.txt&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  , &amp;#39;&amp;#92;&amp;#92;PC-CONF01&amp;#92;ZEBRA-SEP1&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;*/&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; spArkabCopiaArquivo&lt;/li&gt; &lt;li&gt;  @origem &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;200&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @destino &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;200&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Autor: Fabiano Cores&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Data : 06/2011&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Objetivo: Permite copiar arquivos, informando origem e destino.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  Observação importante: pode haver a necessidade de ativar a&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  opção &amp;#39;xp_cmdshell&amp;#39; no SQL Server através do comando&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  sp_reconfigure. Para isto, utilize o script abaixo:&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Mostrar opções avançadas.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  exec sp_configure &amp;#39;show advanced options&amp;#39;, 1&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Ativar a opção anterior&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  reconfigure&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Ativa o comando&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  exec sp_configure &amp;#39;xp_cmdshell&amp;#39;, 1&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  -- Reconfigura para aceitar a modificação&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  reconfigure&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  GO&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;  */&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @string &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;400&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @string &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;copy &amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@origem&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@destino&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;master&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;dbo&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#800000&quot;&gt;xp_cmdshell&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@string&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; no_output&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;O resultado, é uma etiqueta saindo pela impressora, como esta daqui de exemplo (exatamente a mesma do procedimento acima):&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24062011686&quot; border=&quot;0&quot; alt=&quot;24062011686&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8AUcJy4uGVA87I9HPDy9MW8tzq3FqVCoF58DFEx187Lq32pV-ztneC5s_fABCq6PGQ6OEdL1I5TB1PJYeaIhPRk0yV82gaD4WP-QQIbNPFlG21Fb0XUWhwpY_7JZxW_hyrqqEeM5zuvpm/?imgmax=800&quot; width=&quot;244&quot; height=&quot;139&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24062011683&quot; border=&quot;0&quot; alt=&quot;24062011683&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQaW_A6NfQaVeOLwwsHzFEerZ7IRWxg8Ot2WlehYwP0Kk2_1tVUfSjtVK3t0lO1l5Hmnod3aoZGidaekI8XHAs8A2hKMTXwM1y1bc_Sw0C5lwyzxif3BgMN2s-oX1177KZyjzcOMVul0UU/?imgmax=800&quot; width=&quot;244&quot; height=&quot;139&quot;&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24062011685&quot; border=&quot;0&quot; alt=&quot;24062011685&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCQLyNpqzwS0Y_fArgVK3o4GOm7Yz-XYbR0Du5_CSfFXb5k0aO40JMu7QDoGT4KsawIppnzbttkj0WvdkmyRqv4GDhHQFOZ5WlDkPoz8G8ZQNoFWspcJfLc44Gb0G0EUPwyYzuFtKKxvda/?imgmax=800&quot; width=&quot;244&quot; height=&quot;139&quot;&gt; &lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24062011684&quot; border=&quot;0&quot; alt=&quot;24062011684&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ4qwhBIAMR3b4Swig7RkMMJwVJBmkewvd2xaMEDEssKR855G3YPctl4RCY-OwSyir_97F1IE05wPOfBB1kk7r4ojabU11N_p9W-g3QjokEIt1Duno_BFQRqK2fp9zP6G9MfDPxMbBebjf/?imgmax=800&quot; width=&quot;244&quot; height=&quot;139&quot;&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Uma solução interessante… &lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/827915170831827820/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2011/06/automacao-de-impressoras-termicas.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/827915170831827820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/827915170831827820'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2011/06/automacao-de-impressoras-termicas.html' title='Automação de impressoras térmicas diretamente pelo SQL Server'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiedVx4kCPPyU7HxvggPQRd86vmEJ4K9NkYYyAA7FTRiEo4B6qDo0zhB85PlEext4BAMq1HQ8Z62p_pKi2otKEl3MTca1EPtF-CLSSxoK5aqxq5PvFDkAlmfaXoA3C3kkgFtsY_MPOFmeK8/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-4214801865279036935</id><published>2011-06-17T03:04:00.001-03:00</published><updated>2011-06-17T03:04:29.573-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Manipulação de string"/><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>SPLIT STRING – Função para dividir uma string por um caracter de controle</title><content type='html'>&lt;p&gt;Imagine a seguinte situação: você possui uma string, separada por ponto e vírgula, e você deseja separar estas strings para realizar um tratamento. Vamos ver um exemplo abaixo:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;5&quot;&gt;string1; &lt;font color=&quot;#0000ff&quot;&gt;string2&lt;/font&gt;; &lt;font color=&quot;#ff0000&quot;&gt;&quot;string 3 com ; no meio&quot;&lt;/font&gt;; &lt;font color=&quot;#008000&quot;&gt;string4&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Então nós temos quatro valores concatenados em uma única string. Observe que o terceiro valor utiliza o ponto e vírgula como texto da própria string, porém a sentença toda está entre aspas (“), o que determina que o ponto e virgula desta frase faz parte da string, e não é um caracter separador.&lt;/p&gt; &lt;p&gt;Para resolver esta questão, eu desenvolvi o seguinte procedimento:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9ad14d41-1340-446b-bc05-6744c9ae6969&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- exec spSplit &amp;#39;string1; string2; &amp;quot;string3 com ; no meio&amp;quot;; string4&amp;#39;, &amp;#39;;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;alter&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; spSplit&lt;/li&gt; &lt;li&gt;  @grupo &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8000&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  @caracter &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;NULL&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- ***************&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- SQL Burger 2011&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Função SPLIT, separa string dividida por&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- caracter de controle. Esta função só pode ser&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- utilizada e distribuída caso os créditos ao autor&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- sejam citados.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- ***************&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; @caracter &lt;span style=&quot;color:#808080&quot;&gt;is&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;set&lt;/span&gt; @caracter &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @pos &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @buffer &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8000&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @buffer2 &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8000&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; #ret&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;texto &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8000&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null,&lt;/span&gt; ordem &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;identity&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;while&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;charindex&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @grupo&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;&amp;gt;&lt;/span&gt; 0&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @pos &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;charindex&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @grupo&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;left(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @pos&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @grupo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;substring&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @pos &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @pos &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;charindex&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @grupo&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer2 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;left(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @pos&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @grupo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;substring&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @pos &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @buffer2 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer2 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @caracter&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;254&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer2 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;253&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @grupo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;while&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;charindex&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@caracter&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;&amp;gt;&lt;/span&gt; 0&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @pos &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;charindex&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@caracter&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;left(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;@pos &lt;span style=&quot;color:#808080&quot;&gt;-&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @grupo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;-&lt;/span&gt; @pos&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;254&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; @caracter&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;253&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #ret&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;texto&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;ltrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; @grupo &lt;span style=&quot;color:#808080&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @buffer &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@grupo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;@caracter&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #ret&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;texto&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;ltrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@buffer&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; texto &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #ret &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; ordem&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;O procedimento recebe dois parâmetros: @grupo (que é string a ser tratada) e @caracter (o caracter de controle a ser utilizado para separar a string). O resultado é o seguinte:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a4cc212a-8637-45ce-b5f4-7c527981bec0&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spSplit&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;string1; string2; &amp;quot;string3 com ; no meio&amp;quot;; string4&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;!&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdqVC6il5T4gM3HvtRnlOQrDcgAQk5SEofQB6C1PvbM-Oe3waGlRqh5-xUTF93juAdCo6TWG0Pc4vLMSJElYvCM6QM2voqpSjxkCvfQuh57buwSwvzYUMpcrJnt84Ul434u6BwwoWcGVwe/?imgmax=800&quot; width=&quot;284&quot; height=&quot;286&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;A procedure irá retornar cada string em uma linha, permitindo tratá-las da maneira como quiser. Uma dica, utilize uma tabela temporária com uma coluna auto-numérica, e você saberá exatamente qual linha ler de acordo com a posição desejada:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8238d14d-b293-45d6-a56b-9c374c466e99&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;set&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;nocount&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; #split&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  texto &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;100&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; ordem &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;identity&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #split&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;texto&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spSplit&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;string1; string2; &amp;quot;string3 com ; no meio&amp;quot;; string4&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; texto &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Primeiro parametro&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #split &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; ordem &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 1&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; texto &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Segundo parametro&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #split &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; ordem &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 2&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; texto &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Terceiro parametro&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #split &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; ordem &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 3&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; texto &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Quarto parametro&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #split &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; ordem &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 4&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;drop&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; #split&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Desta forma, o número da linha corresponderá ao parâmetro:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuy_qf7J4ZgjW_N8nIWmp6ogDGdBTbawuM8fcbjFsOz5WNgHLb0Ckt5N51WBCaQIZLoPi5mmU4TazyMJAqM7WB8Yxi2DBo31m9A9czgRHQJuoj89eOWLISFqlxnTDjKx8Ez04QiukvmbRO/?imgmax=800&quot; width=&quot;260&quot; height=&quot;257&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Outros caracteres de controle poderão ser utilizados, trazendo o mesmo resultado:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6c79f5ee-0754-41a9-bb0c-5e23cf8d2cbe&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spSplit&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;string1! string2! &amp;quot;string3 com ; no meio&amp;quot;! string4&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;!&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnRc97Gog7SLMB9i2LOjT5aYgvsEZ6v7dOBwrDjIc1KYW37dNnGHoypjboZWlF6ECPdAc32bCfnDMxliQpHiPYZHh_ZWdk3E9ZuPLv-MiC2oD6Qn2fDqFb_I9XU8aa7hrSgpv19rxZH37t/?imgmax=800&quot; width=&quot;209&quot; height=&quot;250&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:97814371-ee22-4785-b7f1-9ff9b59bc7ea&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spSplit&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;string1! string2! &amp;quot;string3 com ! no meio&amp;quot;! string4&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;!&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1V9uV_vp8IXJA3MNQco2KDR_z8CCskLONHf82XH0N9CpWugVp_IsyqwWLimC38f6Nppvpf-41clZ90uC5nneTi75s9czn5UDH0GBbu4eCa4bNIgE1hyR3pkSfwE4FWql4t5kpx8szpzC9/?imgmax=800&quot; width=&quot;230&quot; height=&quot;274&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Espero que seja útil!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/4214801865279036935/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2011/06/split-string-funcao-para-dividir-uma.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/4214801865279036935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/4214801865279036935'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2011/06/split-string-funcao-para-dividir-uma.html' title='SPLIT STRING – Função para dividir uma string por um caracter de controle'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdqVC6il5T4gM3HvtRnlOQrDcgAQk5SEofQB6C1PvbM-Oe3waGlRqh5-xUTF93juAdCo6TWG0Pc4vLMSJElYvCM6QM2voqpSjxkCvfQuh57buwSwvzYUMpcrJnt84Ul434u6BwwoWcGVwe/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-8024129162282342493</id><published>2011-05-25T17:51:00.001-03:00</published><updated>2011-05-25T17:51:00.486-03:00</updated><title type='text'>row_number : Use o número da linha em suas consultas</title><content type='html'>&lt;p&gt;Durante o desenvolvimento de um layout de exportação de dados por arquivo texto, utilizei uma ferramenta muito prática do Transact-SQL, que gostaria de compartilhar aqui no meu blog. A função ROW_NUMBER é utilizada para retornar o número da linha dentro da consulta, de acordo com o “partition_by” e o “order_by” informados. Vamos ver a estrutura da função:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1e3d06ea-110d-451b-98ca-6d30c925a012&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;ROW_NUMBER&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OVER &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; [ &amp;lt;partition_by_clause&amp;gt; ] &lt;span style=&quot;color:#808080&quot;&gt;&amp;lt;&lt;/span&gt;order_by_clause&lt;span style=&quot;color:#808080&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;em&gt;[ &amp;lt;partition_by_clause&amp;gt; ] &lt;/em&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Este parâmetro não é obrigatório. Permite especificar o particionamento da numeração da linha. É um agrupamento, que permitirá que a numeração seja sempre iniciada a cada mudança do agrupamento / particionamento.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;em&gt;&amp;lt;order_by_clause&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Determina qual será a ordenação das linhas do select na atribuição da numeração. A ordenação da função row_number não precisa necessariamente ser a mesma ordenação do select principal onde a função ROW_NUMBER foi aplicada.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;A função irá retornar um BIGINT com o respectivo número da linha. Vamos então para a parte prática! &lt;/p&gt; &lt;p&gt;Crie a seguinte tabela e execute uma carga de exemplo:&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:27edd162-a8f1-4022-93c0-88457f72a7f0&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  funcao &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;15&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;15&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;values &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;PROGRAMADOR&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;JOAO&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;values &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;PROGRAMADOR&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;MARIA&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;values &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;PROGRAMADOR&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;MARCOS&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;values &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;PROGRAMADOR&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;VERIDIANA&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;values &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;ANALISTA&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;IGOR&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;values &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;ANALISTA&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;PEDRO&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exemplo_rn&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;values &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;COORDENADOR&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;OSVALDO&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Nós vamos utilizar como exemplo uma pequena tabela, que possui função e nome de colaboradores. Claro, reduzimos apenas às colunas que nos interessa para exemplificarmos.&lt;/p&gt; &lt;p&gt;Vamos então consultar nossa tabela de exemplo:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f228e45a-256d-4756-8b60-e86a017e1bba&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; exemplo_rn&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixbjt-sGE13AO8UIlvOTtdrvivv2etujqzPLbLJmnbfoGD_o08PfmpbP04w-5J730RPVayQxNDOpKovgyOjBqNbWqv_IxUssP7tAq90iE8iJn1K_ajk15vrB8H4M7f0PFZFF-f8rMkBzad/?imgmax=800&quot; width=&quot;250&quot; height=&quot;217&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Então nós temos 7 linhas no total. Vamos agora retornar uma terceira coluna, que trará automaticamente o número da linha:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6c00c558-704e-4524-9c6b-8bd51e7d8ff9&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;row_number&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;over &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;ID&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; exemplo_rn&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; nome&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisHPkb-zyOW-NgtDUeHPsPihutefZTiD6x4QHKfC8MTAvfQcHKHVnZQtyQ68IdN-SFIzQbIGOcfsIaX-eETFsemvFwi0KUbU23RKiaBMtS6UtEGm5YlpnZaDDhWRKpadfzmvLnKIuf8kO1/?imgmax=800&quot; width=&quot;396&quot; height=&quot;208&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;A coluna ID é resultado da função row_number(). Neste primeiro exemplo, utilizamos a ordenação alfabética da coluna “nome” como condição de numeração das linhas. Observe que a ordenação dentro da cláusula OVER () e a ordenação do select principal não estão diretamente interligadas, porém a ordenação dentro de OVER() é obrigatória:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7ba5f34e-4114-4565-bf36-3ad78d8b8188&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;row_number&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;over &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;ID&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; exemplo_rn&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; funcao&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjImrl8XSB_iRRMmp7NdlS1GKprOFd82POnl6uACTyMitX8PXf38XHmkOuUw6Um0cpgX4CWKJTIrj2wd0FGkimjEC0cZRGnWeLM0IERR1xCsDtEbe8_M9gZQvTh33FDJRpcDjjUTHsqFhhH/?imgmax=800&quot; width=&quot;396&quot; height=&quot;225&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Neste segundo exemplo, a numeração foi feita através da ordenação da função e nome, na respectiva ordem. O próximo exemplo mostra a utilização de PARTITION_BY, condicionando a numeração das linhas ao agrupamento de respectivos campos:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9aac4238-f097-412f-8d90-35e34116da6a&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #ddd; max-height: 500px; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px; white-space: nowrap&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; funcao&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nome&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;row_number&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;over &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;partition&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; funcao &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; nome &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;ID&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; exemplo_rn&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; funcao&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt_J8bQXlew9XdpHZkyiYl5hIWdIgVANPXC1a-lMFryHEn__1sHB036bxLlF9h314D2svvtX1VPueKJhyphenhyphencs92rbqdvt-gECRi1UOmZwuWmyYaEcPo6E_bGqL2pI8IvKRNQ5_siZjIQ2Prw/?imgmax=800&quot; width=&quot;416&quot; height=&quot;206&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Observe no resultado que a numeração da linha foi feita para cada agrupamento utilizado. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;=)&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/8024129162282342493/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2011/05/rownumber-use-o-numero-da-linha-em-suas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8024129162282342493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8024129162282342493'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2011/05/rownumber-use-o-numero-da-linha-em-suas.html' title='row_number : Use o número da linha em suas consultas'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixbjt-sGE13AO8UIlvOTtdrvivv2etujqzPLbLJmnbfoGD_o08PfmpbP04w-5J730RPVayQxNDOpKovgyOjBqNbWqv_IxUssP7tAq90iE8iJn1K_ajk15vrB8H4M7f0PFZFF-f8rMkBzad/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-7212501719072671628</id><published>2011-03-17T01:45:00.001-03:00</published><updated>2011-03-17T01:48:32.391-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Crystal Reports"/><category scheme="http://www.blogger.com/atom/ns#" term="Manipulação de string"/><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Crystal Reports – Como buscar uma imagem de arquivo para ser exibida no relatório</title><content type='html'>&lt;p&gt;Olá caros sqlnautas, gostaria de retornar aqui com mais uma dica importante sobre imagens no crystal reports. Imagine o seguinte cenário: você está montando um relatório em crystal reports que deverá exibir imagens que, ao invés de estarem armazenadas no banco de dados, estão em arquivos no disco rígido do servidor, e no banco de dados você só tem a localização deste arquivo, o que é muito comum, pois armazenar arquivos em banco de dados é extremamente desaconselhável quando se pensa em performance.&lt;/p&gt; &lt;p&gt;O que precisamos fazer, é utilizar uma ferramenta muito simples, chamada BULK INSERT. Este comando é utilizado para importar dados &lt;em&gt;em massa &lt;/em&gt;provenientes de arquivos para o banco de dados. Mas nós não vamos armazenar esta imagens, e sim converter os arquivos de imagem em formato BLOB, ou image. O conceito é simples: realizo o bulk insert do arquivo dentro de uma tabela temporária, que retorna um select ao crystal reports com a coluna image da tabela:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0abd1fe8-9bef-4a98-8bbc-64a5edd7a37b&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- exec spcAmplaPedidoCompraImagem 3, 2685&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;alter&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; spcAmplaPedidoCompraImagem  &lt;/li&gt; &lt;li&gt;  @cd_empresa &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @nr_pedido &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @nr_documento &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @revisao &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vcd_item &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vdocumento &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;4000&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @sql &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8000&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- ***************&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- SQL Burger 2011&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Procedure que retorna as imagens provenientes de arquivos&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- para exibição em relatório crystal reports.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- ***************&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Inicio a montagem de uma query dinâmica, necessária para a execução&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- do comando bulkinsert com parâmetros dinâmicos, provenientes da tabela&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- que possui a localização dos arquivos.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @sql &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#ff0000&quot;&gt;create table #tmpImagem (imagem image)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#ff0000&quot;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Insiro em uma tabela auxiliar todos os itens do pedido de compra&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- para verificar quais possuem documentos que deverão ser impressos&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- junto com o pedido.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; #tmpItem&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cd_item &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;collate&lt;/span&gt; database_Default &lt;span style=&quot;color:#808080&quot;&gt;null)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #tmpItem&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; cd_item &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; pedidocitem&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; cd_empresa &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_empresa&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; nr_pedido &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @nr_pedido&lt;/li&gt; &lt;li&gt;       &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #tmpItem&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; cd_item &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; AdhEPTRomaneioPedidoCompra&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; cd_empresa &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_empresa&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; nr_pedido &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @nr_pedido&lt;/li&gt; &lt;li&gt;       &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Faço join da tabela temporária de itens com a de documentos&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- configurados a serem impressos nos pedidos de compra, e valido&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- se o arquivo está ativo e dentro da validade.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; cp1 &lt;span style=&quot;color:#0000ff&quot;&gt;cursor&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;local&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;fast_forward&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;read_only&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;distinct&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;documento&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #tmpItem a&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; itemdocumentorev b&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;imprime_pc &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;S&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_situacao &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;A&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;-- ativos apenas&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;dt_validade &lt;span style=&quot;color:#808080&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(),&lt;/span&gt; 120&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_Item&lt;/li&gt; &lt;li&gt;       &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;open&lt;/span&gt; cp1&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;while&lt;/span&gt; 1 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;fetch&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;next&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; cp1 &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; @vcd_item&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vdocumento&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;@@fetch_status&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0 &lt;span style=&quot;color:#0000ff&quot;&gt;break&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008000&quot;&gt;-- Para cada arquivo retornado, monto na query dinâmica o comando bulk insert&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008000&quot;&gt;-- que irá inserir o stream da imagem na tabela #tmpImagem, criada no começo&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008000&quot;&gt;-- do procedimento.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @sql &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @sql &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;  insert into #tmpImagem (imagem)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#ff0000&quot;&gt;select Bulkcolumn &lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;color:#ff0000&quot;&gt;from OPENROWSET(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;               &lt;span style=&quot;color:#ff0000&quot;&gt;BULK N&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@vdocumento&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&amp;#39;, SINGLE_BLOB&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                       &lt;span style=&quot;color:#ff0000&quot;&gt;) as picture      &lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;close&lt;/span&gt; cp1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;deallocate&lt;/span&gt; cp1&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- No final, retorno as imagens.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @sql &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @sql &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#ff0000&quot;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#ff0000&quot;&gt;select imagem from #tmpImagem&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#ff0000&quot;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Executo a query dinâmica&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@sql&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;A string que contem a query dinâmica (@sql) foi executada da seguinte forma:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e0605b89-c4b4-47bb-b898-f0f587c93f4c&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; #tmpImagem&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;imagem &lt;span style=&quot;color:#0000ff&quot;&gt;image&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #tmpImagem&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;imagem&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; Bulkcolumn &lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OPENROWSET&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;             &lt;span style=&quot;color:#0000ff&quot;&gt;BULK&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;N&amp;#39;C:&amp;#92;MSSQL&amp;#92;Novo&amp;#92;4002-109 Base Fixação Encoder0001.jpg&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;SINGLE_BLOB&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                     &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; picture      &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #tmpImagem&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;imagem&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; Bulkcolumn &lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OPENROWSET&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;             &lt;span style=&quot;color:#0000ff&quot;&gt;BULK&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;N&amp;#39;C:&amp;#92;MSSQL&amp;#92;Novo&amp;#92;4004-057 Suporte Sensor Ótico0001.jpg&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;SINGLE_BLOB&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                     &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; picture      &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #tmpImagem&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;imagem&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; Bulkcolumn &lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OPENROWSET&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;             &lt;span style=&quot;color:#0000ff&quot;&gt;BULK&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;N&amp;#39;C:&amp;#92;MSSQL&amp;#92;Novo&amp;#92;4004-061 Suporte Direito Bandeja0001.jpg&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;SINGLE_BLOB&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                     &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; picture      &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #tmpImagem&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;imagem&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; Bulkcolumn &lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OPENROWSET&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;             &lt;span style=&quot;color:#0000ff&quot;&gt;BULK&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;N&amp;#39;C:&amp;#92;MSSQL&amp;#92;Novo&amp;#92;4004-064 Suporte Esquerdo Bandeja0001.jpg&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;SINGLE_BLOB&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                     &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; picture      &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #tmpImagem&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;imagem&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; Bulkcolumn &lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OPENROWSET&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;             &lt;span style=&quot;color:#0000ff&quot;&gt;BULK&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;N&amp;#39;C:&amp;#92;MSSQL&amp;#92;Novo&amp;#92;4004-119B Placa Fixação Servo0001.jpg&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;SINGLE_BLOB&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                     &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; picture      &lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; imagem &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #tmpImagem&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Para cada arquivo, ele montou a string executando o bulk insert de cada imagem. No final, o select retornando as imagens da temporária. O resultado do procedimento, via query no SQL Server:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLAEFGKlHlZtkPj7rg1mTwuTGDOur71TgxzbCehqMGwCcL40Wyp9AKBSyO8qUtbGfgw1kqinYuQYGGkWKzhBXS04v7FgGIC6hazgQsCsLIsTfH-ckLWYhXoXKTQD8rRXXogV1Of2OjUTvf/?imgmax=800&quot; width=&quot;694&quot; height=&quot;521&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Já no relatório crystal reports, ao importar esta coluna do tipo IMAGE, aparecerá no seu relatório:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzIAlJHMTCA0LnQDdNJ4Hcpm8dQFxmAmIUnbl8uz4JiE10pZKrt5loxm6goOPcMlETUG2p7S7EVNzOGLi_YWXKQmvQNl2OISwjmii88DWnZR1Lu0_q7l8kAk6XJKNRV-v_hqzX3gd1vlwk/?imgmax=800&quot; width=&quot;1014&quot; height=&quot;730&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Easy, don’t you think ? =)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Até a próxima!!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/7212501719072671628/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2011/03/crystal-reports-como-buscar-uma-imagem.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/7212501719072671628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/7212501719072671628'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2011/03/crystal-reports-como-buscar-uma-imagem.html' title='Crystal Reports – Como buscar uma imagem de arquivo para ser exibida no relatório'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLAEFGKlHlZtkPj7rg1mTwuTGDOur71TgxzbCehqMGwCcL40Wyp9AKBSyO8qUtbGfgw1kqinYuQYGGkWKzhBXS04v7FgGIC6hazgQsCsLIsTfH-ckLWYhXoXKTQD8rRXXogV1Of2OjUTvf/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-8570352212477276550</id><published>2010-12-23T01:22:00.001-02:00</published><updated>2010-12-23T01:29:53.015-02:00</updated><title type='text'>Um caso de recursividade</title><content type='html'>&lt;p&gt;Aproveitando um recente trabalho realizado, gostaria de descrever um relatório que rapidamente desenvolvi em uma base de dados SQL Server. A situação era a seguinte: eu havia importado a estrutura de um produto, e precisava exibir esta estrutura na forma de um relatório. Primeiro, vamos entender o termo “estrutura de um produto”. A empresa em questão é uma fábrica de impressoras de plotagem (1,8m a 3,2m). A ficha técnica da impressora é composta por vários níveis de componentes. Vou ilustrar uma composição:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Impressora XPTO modelo 1&lt;/li&gt; &lt;ol&gt; &lt;li&gt;Conjunto eletrônica XPTO 1804&lt;/li&gt; &lt;ol&gt; &lt;li&gt;Tomada de embutir 3 pinos&lt;/li&gt; &lt;li&gt;Cinta nylon média&lt;/li&gt; &lt;li&gt;Fusível pequeno 10A&lt;/li&gt; &lt;li&gt;Sensor de temperatura&lt;/li&gt; &lt;li&gt;Ventilador – secagem&lt;/li&gt; &lt;ol&gt; &lt;li&gt;Espaguete termo retrátil&lt;/li&gt; &lt;li&gt;Ventilador 120x120x38 c/ rosca&lt;/li&gt; &lt;li&gt;Conector modular miniatura H89F09&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;Blower – vácuo&lt;/li&gt; &lt;ol&gt; &lt;li&gt;Blower ( Siroco ) AD xxxx 24v&lt;/li&gt; &lt;li&gt;Conector modular miniatura H90F23&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;Aquecimento – cabeças&lt;/li&gt; &lt;ol&gt; &lt;li&gt;Resistor Fio 120R x 10W&lt;/li&gt; &lt;li&gt;Cabo paralelo 0,20mm&lt;/li&gt; &lt;li&gt;Apoio de silicone 13mm x 4mm&lt;/li&gt; &lt;li&gt;Terminal KK pequeno importado&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;O relatório precisa aparecer formatado como está acima (indentado nos níveis). Porém, a quantidade de níveis é indefinida. Desta forma, utilizei o conceito de “recursividade”.&lt;/p&gt; &lt;p&gt;Definições de &lt;b&gt;recursividade&lt;/b&gt; na internet: &lt;ul&gt; &lt;li&gt;Recursão é um método de programação no qual uma função pode chamar a si mesma. O termo é usado de maneira mais geral para descrever o processo de repetição de um objeto de um jeito similar ao que já fora mostrado. ...&lt;br&gt;&lt;a href=&quot;http://www.google.com.br/url?ei=j7cSTefQDsOblgenm6G7Cw&amp;amp;sig2=wg-mhoIIdCABPWXG8BETcQ&amp;amp;q=http://pt.wikipedia.org/wiki/Recursividade&amp;amp;sa=X&amp;amp;ved=0CAQQpAMoAA&amp;amp;usg=AFQjCNFsVwEbFTHVnwT9Fe2vUxQ4YbrDdw&quot; target=&quot;_blank&quot;&gt;pt.wikipedia.org/wiki/Recursividade&lt;/a&gt;&lt;br&gt; &lt;li&gt;A recursividade na programação de computadores envolve a definição de uma função que pode invocar a si própria. Um exemplo de aplicação da recursividade pode ser encontrado nos analisadores gramaticais recursivos para linguagens de programação. ...&lt;br&gt;&lt;a href=&quot;http://www.google.com.br/url?ei=j7cSTefQDsOblgenm6G7Cw&amp;amp;sig2=0b5vTB0jAT9SoLCskecubg&amp;amp;q=http://pt.wikipedia.org/wiki/Recursividade_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)&amp;amp;sa=X&amp;amp;ved=0CAUQpAMoAQ&amp;amp;usg=AFQjCNHnvAFatUxpQcj3KJlOnFsVshegNQ&quot; target=&quot;_blank&quot;&gt;pt.wikipedia.org/wiki/Recursividade_(ciência_da_computação)&lt;/a&gt;&lt;br&gt; &lt;li&gt;iteratividade; propriedade de formar infinitos elementos à partir de finitos aplicando-se regras lógicas ou matemáticas&lt;br&gt;&lt;a href=&quot;http://www.google.com.br/url?ei=j7cSTefQDsOblgenm6G7Cw&amp;amp;sig2=q47cM-tD9KiTBZqijinlag&amp;amp;q=http://pt.wiktionary.org/wiki/Recursividade&amp;amp;sa=X&amp;amp;ved=0CAYQpAMoAg&amp;amp;usg=AFQjCNGDXOFBdTMwp7EBziQV2s_zhnbNuQ&quot; target=&quot;_blank&quot;&gt;pt.wiktionary.org/wiki/Recursividade&lt;/a&gt;&lt;br&gt; &lt;li&gt;que chama a si mesmo (programa ou função)&lt;br&gt;&lt;a href=&quot;http://www.google.com.br/url?ei=j7cSTefQDsOblgenm6G7Cw&amp;amp;sig2=vD2iuU1ky-2S2WpApK29ug&amp;amp;q=http://pt.wiktionary.org/wiki/Recursivo&amp;amp;sa=X&amp;amp;ved=0CAgQpAMoBA&amp;amp;usg=AFQjCNEhoxDkA9s0OJM0sDYjOQu2ws5XmA&quot; target=&quot;_blank&quot;&gt;pt.wiktionary.org/wiki/Recursivo&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Para desenvolver este relatório, eu utilizei este conceito de recursividade. Eu criei um procedimento insere os componentes, e para cada componente que está inserindo, chama a si mesmo para repetir a explosão, independente da quantidade de níveis que houver na estrutura.&lt;br&gt;&lt;br&gt;O primeiro código que vamos analisar é o que retorna o relatório ao usuário. Ele somente recebe os parâmetros, e chama o procedimento de explosão da estrutura, chamado spcAdhExpEst (procedimento recursivo).&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:82757bae-afeb-411e-b3e0-7a33513e69a9&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; spcAdhExplodeProduto&lt;/li&gt; &lt;li&gt;  @cd_item &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Autor: Fabiano Cores&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Data : 23/12/2010&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Site : http://sqlburger.blogspot.com&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Desenvolvido para demonstrar a utilização de procedimentos&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;recursivos no SQL Server. A reprodução deste artigo só é &lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;permitida se forem mantidos os créditos do autor.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;*/&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Esta tabela possui papel fundamental na recursividade. Esta&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- tabela irá existir durante toda a execução deste procedimento&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- mesmo quando chamamos executamos um segundo procedimento. &lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; #retorno&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    cd_componente &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;18&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;collate&lt;/span&gt; database_default &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_aplicada &lt;span style=&quot;color:#0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;4&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nivel &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; ordem &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;identity&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Insiro o item pai, para que o usuário saiba de qual produto&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- está tirando o relatório&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #retorno&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cd_componente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_aplicada&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nivel&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @cd_item&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 1&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Este é o procedimento recursivo. Ele fará referencia a ele&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- mesmo, enquanto preenche a tabela #retorno&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spcAdhExpEst&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@cd_item&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Aqui, eu pego os registros da tabela #retorno, e retorno&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- ao software .NET, para exibição ao usuário.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;18&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;space&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;((&lt;/span&gt;nivel&lt;span style=&quot;color:#808080&quot;&gt;-&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;*&lt;/span&gt; 2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_Componente&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Código&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;65&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;space&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;((&lt;/span&gt;nivel&lt;span style=&quot;color:#808080&quot;&gt;-&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;*&lt;/span&gt; 2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;descricao&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Descrição&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;qt_aplicada &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Quantidade&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;nivel &lt;span style=&quot;color:#808080&quot;&gt;-&lt;/span&gt;1 &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Nível&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; #retorno a&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; item b&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_componente &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;ordem&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;Este é o código do procedimento recursivo. Ele insere na tabela #retorno, que foi criada pelo seu procedimento antecessor (spcAdhExplodeEstrutura), e faz referência a si mesma: &lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:46cc68f2-4c23-47f6-a206-5c7c2e7171aa&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; spcAdhExpEst&lt;/li&gt; &lt;li&gt;  @cd_item &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Autor: Fabiano Cores&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Data : 23/12/2010&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Site : http://sqlburger.blogspot.com&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Desenvolvido para demonstrar a utilização de procedimentos&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;recursivos no SQL Server. A reprodução deste artigo só é &lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;permitida se forem mantidos os créditos do autor.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;*/&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vcd_componente &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vqt_aplicada &lt;span style=&quot;color:#0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;19&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;4&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Insere os componentes simples (não possuem estrutura abaixo)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #retorno&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cd_componente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_aplicada&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nivel&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_componente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;qt_aplicada&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;@@nestlevel&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; processoitem a&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; item b&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_item&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_componente &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;exists&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; 0&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; processoitem c&lt;/li&gt; &lt;li&gt;                        &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; c&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_componente&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;descricao&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Aqui é montado um cursor nos itens complexos (que possuem&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- estrutura). É utilizado um cursor por que para cada item&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- que possui estrutura, eu vou fazer a chamada recursiva.&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; c1 &lt;span style=&quot;color:#0000ff&quot;&gt;cursor&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;local&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;fast_forward&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;read_only&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_componente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;qt_aplicada&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; processoitem a&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; item b&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; @cd_item&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_componente &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt;     &lt;span style=&quot;color:#808080&quot;&gt;exists&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; 0&lt;/li&gt; &lt;li&gt;                         &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; processoitem c&lt;/li&gt; &lt;li&gt;                        &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; c&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_item &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; a&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;cd_componente&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; b&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;descricao&lt;/li&gt; &lt;li&gt;     &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;open&lt;/span&gt; c1&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;while&lt;/span&gt; 1 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;fetch&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;next&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; c1 &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; @vcd_componente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vqt_aplicada&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;@@fetch_status&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0 &lt;span style=&quot;color:#0000ff&quot;&gt;break&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; #retorno&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cd_componente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_aplicada&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nivel&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @vcd_componente&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vqt_aplicada&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;@@nestlevel&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008000&quot;&gt;-- Chamada recursiva (executando ele mesmo)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spcAdhExpEst&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@vcd_componente&lt;/li&gt; &lt;li&gt;    &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;close&lt;/span&gt; c1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;deallocate&lt;/span&gt; c1&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Detalhes importantes que devem ser observados:&lt;/p&gt; &lt;p&gt;1. A tabela temporária foi criada no primeiro procedimento. Se ela fosse criada no procedimento recursivo, daria erro, pois ele tentaria criar mais de uma vez a mesma tabela, desta forma, ela sendo criada apenas uma vez pelo procedimento pai, não haverá problemas.&lt;/p&gt; &lt;p&gt;2. O procedimento filho (spcAdhExpEst) consegue enxergar a tabela #retorno.&lt;/p&gt; &lt;p&gt;3. A variável @@nestlevel é uma variável de ambiente, que retorna o nível de aninhamento* da execução do procedimento. Isto é uma forma de saber quantas vezes o procedimento já foi disparado por ele mesmo (na primeira execução, @@nestlevel é igual a 0). Aproveitei esta variável para incluir no relatório a que nível o componente pertence, e também a utilizei como parâmetro para adicionar espaços à esquerda do código e da descrição, para melhorar visualmente a identificação dos níveis na leitura do relatório.&lt;br&gt;&lt;br&gt;&lt;font size=&quot;1&quot;&gt;*Definições de &lt;b&gt;aninhar&lt;/b&gt; na internet:&lt;/font&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font size=&quot;1&quot;&gt;aninhado - Quando se tem um objeto dentro do outro, como uma tabela, por exemplo , você possui um aninhamento , ou seja, um objeto funcionando como ninho para outro objeto.&lt;br&gt;&lt;/font&gt;&lt;a href=&quot;http://www.google.com.br/url?ei=yb8STYnKDsP_lgey5_H9Bw&amp;amp;sig2=Uc2lOUkihkdFIHv2LHDlLA&amp;amp;q=http://www.juliobattisti.com.br/tutoriais/keniareis/dicionarioinfo001.asp&amp;amp;sa=X&amp;amp;ved=0CAQQpAMoAA&amp;amp;usg=AFQjCNGZAR08_EC_gfXp1HXAEwzAMsUGUg&quot; target=&quot;_blank&quot;&gt;www.juliobattisti.com.br/tutoriais/keniareis/dicionarioinfo001.asp&lt;/a&gt;&lt;font size=&quot;1&quot;&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKHSIOZTZntnFlgF8KsSmryiK2icsv8M8ztwIohgqmfKIPf0BiHh5qjXq6k_meeJEl5NDGjV12a4zMFVuJrhmEMbUuP13aKZfGyGGQpoRkVtTb8269Xck2ea5F43djuH5YLmYJ5KW5WNzQ/?imgmax=800&quot; width=&quot;694&quot; height=&quot;669&quot;&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Eu estou postando esta dica por que hoje tive uma experiência muito desagradável… um certo programador teve a capacidade de fazer 9 cursores (loops), um dentro do outro, para tratar possíveis 9 níveis do produto. Além de ser um código absurdamente mal pensado, é gigantesco, lento, péssimo de realizar manutenção, entre outros comentários que não vêem ao caso. E como padrão, quando pego código assim, tenho o hábito de selecionar tudo, apagar, refazer… e claro, compartilhar!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/8570352212477276550/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/12/um-caso-de-recursividade.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8570352212477276550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8570352212477276550'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/12/um-caso-de-recursividade.html' title='Um caso de recursividade'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKHSIOZTZntnFlgF8KsSmryiK2icsv8M8ztwIohgqmfKIPf0BiHh5qjXq6k_meeJEl5NDGjV12a4zMFVuJrhmEMbUuP13aKZfGyGGQpoRkVtTb8269Xck2ea5F43djuH5YLmYJ5KW5WNzQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-9203136686577909288</id><published>2010-12-22T20:34:00.001-02:00</published><updated>2010-12-22T23:41:59.800-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Avançado"/><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Triggers para iniciantes no SQL Server – Parte 2/3</title><content type='html'>&lt;h4&gt;&lt;font size=&quot;1&quot;&gt;&lt;em&gt;Este artigo se aplica ao Microsoft SQL Server a partir da versão 2000, porém o conceito de triggers se aplica à maioria dos sistemas gerenciadores de bancos de dados disponíveis, porém podem ocorrer diferença de sintaxe.&lt;/em&gt;&lt;/font&gt;&lt;/h4&gt; &lt;p align=&quot;justify&quot;&gt;Olá caros sqlnautas, sejam bem vindos à segunda parte da saga sobre triggers (gatilhos) no SQL Server. Para quem deseja ler a primeira parte, segue aqui o link para a primeira parte:&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://sqlburger.blogspot.com/2010/12/triggers-para-iniciantes-no-sql-server.html&quot; target=&quot;_blank&quot;&gt;Triggers para iniciantes no SQL Server - Parte 1/3&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;PARA COMEÇAR&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;Para esta segunda parte do nosso tutorial, vamos partir para a parte prática. Para começar, abra uma nova janela de Query no seu SQL Management Studio para criarmos duas tabelas, com estruturas idênticas, porém com diferentes propósitos, para que possamos executar nossos testes, e entender o comportamento das triggers em todas as operações.&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b9f22cc8-31a9-40ca-ac26-ebbc0de66760&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; exTrigger1&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  codigo     &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor      &lt;span style=&quot;color:#0000ff&quot;&gt;money&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total      &lt;span style=&quot;color:#0000ff&quot;&gt;money&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;GO&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;table&lt;/span&gt; exTrigger2&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  codigo     &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor      &lt;span style=&quot;color:#0000ff&quot;&gt;money&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total      &lt;span style=&quot;color:#0000ff&quot;&gt;money&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;GO&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- Execute estes inserts na tabela exTrigger2, vamos usar&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- mais pra frente.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exTrigger2&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;codigo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 1 &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exTrigger2&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;codigo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;2&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 4 &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exTrigger2&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;codigo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;4&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 3&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 3&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 9&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;justify&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;EXPLORANDO AS TABELAS INSERTED E DELETED&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;As tabelas INSERTED e DELETED, como comentado no post anterior, são tabelas “virtuais”, que existem somente durante a execução de uma trigger. Na tabela INSERTED temos os registros inseridos na tabela, ou os novos valores atribuídos aos registros alterados durante um update. Na tabela DELETED, o conceito é o mesmo, porém com os registros excluídos, ou no caso do update, os valores anteriores ao update. A trigger que estamos criando, será disparada sob qualquer operação de manipulação de dados que houver na tabela (INSERT, DELETE, UPDATE). Como foi falado anteriormente, você pode ter uma trigger configurada para disparar somente no evento INSERT ou somente no DELETE, mas aqui vamos colocar todas as operações para explorá-las melhor.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Lembrando que sistematicamente, todo processo executado em um sistema, geralmente possui um fluxo de retrocesso, estorno, ou algo similar para esta mesma operação. É neste momento que se deve tomar muito cuidado ao se criar trigger. Se você criou uma trigger para quando inserisse na tabela, movimentasse estoque, você também deve ter uma trigger que ao excluir o registro dessa tabela, estorne esta movimentação, caso contrário seu banco de dados não ficará consistente, e assim por diante.&lt;br&gt;&lt;br&gt;A trigger que vamos criar possui o propósito específico de mostrar o comportamento das tabelas INSERTED e DELETED. Quando realizarmos operações na tabela exTrigger1, na tela de resultado da Query irá aparecer a contagem de registros incluidos, excluídos e alterados.&lt;br&gt;&lt;br&gt;Vamos então criar nossa trigger na tabela exTrigger1:&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f7e4bd36-ec47-489f-8f11-7c32309c5e8e&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgExTrigger1 &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; exTrigger1 &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;delete&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;update&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Autor: Fabiano Cores&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Data : 20/12/2010&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Site : http://sqlburger.blogspot.com&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#008000&quot;&gt;Desenvolvido para demonstrar a utilização de &lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;triggers no SQL Server. A reprodução deste &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#008000&quot;&gt;artigo só é permitida se forem mantidos os &lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;créditos do autor.&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#008000&quot;&gt;*/&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @excluidos &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @incluidos &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @alterados &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @mensagem  &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;100&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt;   &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Quantidade de registros excluidos (delete) &lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @excluidos &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(*)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; deleted &lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; codigo &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; codigo &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                          &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; inserted&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Quantidade de registros incluídos (insert) &lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @incluidos &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(*)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; inserted &lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; codigo &lt;span style=&quot;color:#808080&quot;&gt;not&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; codigo &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                          &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; deleted&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Quantidade de registros alterados (update) &lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @alterados &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(*)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; inserted&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; deleted &lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; inserted&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;codigo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; deleted&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;codigo &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Monto a string de mensagem &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @mensagem &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Incluídos: &amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@incluidos&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;       &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Excluídos: &amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@excluidos&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Alterados: &amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@alterados&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;-- Exibo na tela do Query Result os calculos. &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;print&lt;/span&gt; @mensagem &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;justify&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;EXECUTANDO OS TESTES&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;Agora que toda a estrutura de objetos está criada, vamos iniciar os nossos testes. Ao executar cada script, observe a estrutura do código da trigger e assimile ambos os códigos ao mesmo tempo, com calma, e irá entender com facilidade. &lt;/p&gt; &lt;p&gt;O primeiro teste que vamos realizar é um insert na tabela exTrigger1 (que possui a trigger). O script e a figura com o resultado seguem abaixo:&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:105db2ec-70e3-4bfa-af74-d2423fe139e7&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exTrigger1&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;codigo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 30&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 10&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 300&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;trigger3&quot; border=&quot;0&quot; alt=&quot;trigger3&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5YgVc765KKRwM31Grv3mNB7RJZUj2L1Ct5rcCB61NA4Z5TSTfkESam8B1KGU4l3kefb4YIiVNSc7cQp_bdjmiEZVqrFrRHKh1ETypg4eVOYQXsEtUJgFQULV1X46MvWmNlc6JpEkoppsQ/?imgmax=800&quot; width=&quot;694&quot; height=&quot;584&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;Agora, vamos fazer um update na tabela: &lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7649399f-19b2-445d-a731-e06870e3b82f&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;update&lt;/span&gt; exTrigger1 &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;set&lt;/span&gt; quantidade &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 20 &lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 200 &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; codigo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;trigger4&quot; border=&quot;0&quot; alt=&quot;trigger4&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkFxGjJreLBH_s8PuUaixujxp9CoxESIaIm1exhxI7fGzidl7uVbB6jjjxSFFjpfFRUTZNwQ_xgIuARpmfTGFIvdAU1Zm-m-PGlwgMIcYQUOFgGZzOnVNUzAntZ2WKDM76OqZBXikgW3wb/?imgmax=800&quot; width=&quot;694&quot; height=&quot;411&quot;&gt;&lt;br&gt;&lt;br&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;E para finalizar a primeira parte dos exemplos, vamos excluir o registro que inserimos, e ver o resultado que a trigger irá imprimir na tela. &lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:009ae035-4eb8-4c1d-849e-c75a15525496&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;delete&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; exTrigger1 &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; codigo &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;A&amp;#39;&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;trigger5&quot; border=&quot;0&quot; alt=&quot;trigger5&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdhd1S1O-ojPSUkr2CCECiRLVSIjZDn19SXd7UC9zBnMYGwj6HucTb7ezatgM1aYIyiWgKIh3WJ4PwFNM23eEwuyAPorTMXxYLJenGGsCzycUk4Ni09Zb2nbuWdwZBeQPDxufd2MqX5pSb/?imgmax=800&quot; width=&quot;694&quot; height=&quot;411&quot;&gt;  &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;Agora, vou mostrar o por que criar uma trigger exige que sejam observados vários aspectos. Vamos agora utilizar os dados da tabela exTrigger2, que possui 3 registros que inserimos para teste. Vamos inserir dados em massa na tabela exTrigger1 (a que possui a trigger). Mas o que é inserir dados em massa? É quando inserimos em uma tabela o resultado de um select, que pode retornar mais de um registro. Vamos observar o que acontece:&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4704ddaa-99b4-4209-9e08-cc631d971de5&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; exTrigger1&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;codigo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; codigo&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; quantidade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; valor&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; total &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; exTrigger2&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;trigger6&quot; border=&quot;0&quot; alt=&quot;trigger6&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRtYc05UDIdxSd2iMUYu72Z0lvm_jHtzvp4xa4xiqMh5hgBoBLTGptorOWQ1d0t01tKM6lipVFAaTxH7Ihyphenhyphen33UFNyi3tuMGL4i_HNIN1nzUWRVonTQFP6NQa2tWQMT0crXzyiA1s0H9BP9/?imgmax=800&quot; width=&quot;694&quot; height=&quot;411&quot;&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;Observe atentamente que inserimos 3 registros na tabela, porém a trigger foi disparada uma única vez. Muitas vezes, programadores amadores nem conhecem esta característica, ou as vezes o programador “acha” que só ocorrerão operações na tabela que incluam, alterem ou excluam apenas um registro, e é nesse momento que a trigger pode se tornar um problema. Na minha opinião, triggers são perigosas, e devem ser criadas a partir de muito planejamento e documentação. É importante lembrar que podem haver intervensões manuais na tabela, etc. &lt;br&gt;&lt;br&gt;Um exemplo de como você pode seguramente tratar todos os registros de uma tabela, é utilizando um cursor:&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:32f875fd-25ea-41bc-8a1e-2885a26266ee&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgExemplo &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; TabExemplo&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vcol1 &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vcol2 &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; cp1 &lt;span style=&quot;color:#0000ff&quot;&gt;cursor&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;local&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;fast_forward&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;read_only&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; col1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; col2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;...&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; inserted&lt;/li&gt; &lt;li&gt;      &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;open&lt;/span&gt; cp1&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;while&lt;/span&gt; 1 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;fetch&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;next&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; cp1 &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; @vcol1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vcol2&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;@@fetch_status&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0 &lt;span style=&quot;color:#0000ff&quot;&gt;break&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#008000&quot;&gt;-- sql_statements... &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;        &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;close&lt;/span&gt; cp1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;deallocate&lt;/span&gt; cp1&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;O único conselho que insisto em descrever é que se tome cuidado ao criar uma trigger. Procure projetar todas as possibilidades de operações que possam ocorrer na tabela. Também é importante que, se você fez uma trigger que faz uma operação, provavelmente você tenha que fazer uma trigger inversa, que desfaça a operação. Exemplo: você tem uma trigger na tabela de apontamento de ordem de produção, que ao gravar o apontamento, a trigger realiza a baixa de estoque dos materiais da ordem de produção. Lembre-se que se você excluir este apontamento, você deverá fazer uma trigger de delete, que irá estornar o movimento do estoque, e assim por diante. E é aí que se encontra a importância de tratar multiplos registros inseridos ou excluídos.&lt;br&gt;&lt;br&gt;No próximo capítulo, vamos tratar abordagens mais avançadas nas triggers, como desabilitalas temporariamente, definição de sequencia de disparo (multiplas triggers em uma única tabela), controle de redundância (a trigger modificar dados em sua própria tabela, disparando de forma cíclica a trigger), e outros conceitos muito úteis.&lt;br&gt;&lt;br&gt;Até a próxima!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/9203136686577909288/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/12/triggers-para-iniciantes-no-sql-server_22.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/9203136686577909288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/9203136686577909288'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/12/triggers-para-iniciantes-no-sql-server_22.html' title='Triggers para iniciantes no SQL Server – Parte 2/3'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5YgVc765KKRwM31Grv3mNB7RJZUj2L1Ct5rcCB61NA4Z5TSTfkESam8B1KGU4l3kefb4YIiVNSc7cQp_bdjmiEZVqrFrRHKh1ETypg4eVOYQXsEtUJgFQULV1X46MvWmNlc6JpEkoppsQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-8429825994060668942</id><published>2010-12-06T23:39:00.001-02:00</published><updated>2010-12-22T23:33:31.240-02:00</updated><title type='text'>Triggers para iniciantes no SQL Server – Parte 1/3</title><content type='html'>&lt;h4&gt;&lt;font size=&quot;1&quot;&gt;&lt;em&gt;Este artigo se aplica ao Microsoft SQL Server a partir da versão 2000, porém o conceito de triggers se aplica à maioria dos sistemas gerenciadores de bancos de dados do mercado.&lt;/em&gt;&lt;/font&gt;&lt;/h4&gt; &lt;p align=&quot;justify&quot;&gt;Olá caros sqlnautas. Neste artigo, trarei a vocês algumas dicas importantes sobre TRIGGERS no SQL Server. Este recurso nos possibilita disparar eventos programados ao se inserir, excluir ou alterar dados em uma tabela. Um exemplo de aplicação, que vamos abordar neste tópico, será a criação de uma trigger em uma tabela dos itens de uma nota fiscal. Quando os itens são gravados nesta tabela, automaticamente a trigger irá movimentar o estoque. Lembrando que nesta primeira parte, os scripts de exemplo foram desenvolvidos apenas para ilustrar. Na segunda parte, fornecerei scripts completos para realizar as simulações em seu próprio SQL Server.&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;CONHECENDO A ESTRUTURA DE UMA TRIGGER&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;Uma trigger (gatilho) é um bloco de código T-SQL (como um procedimento) que é executado no momento em que ocorre um INSERT, UPDATE e/ou DELETE na tabela onde foi criada.&lt;br&gt;&lt;br&gt;Vamos então começar visualizando uma trigger. Para abrir uma trigger, podemos faze-lo de duas formas:&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;1. Localizar a trigger através do Object Explorer do Microsoft SQL Server Management Studio (imagem abaixo), clicar com o botão direito sobre ela e clicar em MODIFY (modificar).&lt;br&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;Exemplo de trigger 1&quot; border=&quot;0&quot; alt=&quot;Exemplo de trigger 1&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhi7ySjknInx7ufJoEwTWxeQZY54WBXKUt-CfyMJoIj9jzusL7d-9sUKN2QyNWPHW4VSHz52VezgPM-_JTx1iArXO44p9YqZxQTxSpDv12jhBNCVMmAjOtx3kjVMMs6fzMM_l2dg1XEhoj/?imgmax=800&quot; width=&quot;694&quot; height=&quot;584&quot;&gt;&lt;br&gt;&lt;/p&gt; &lt;p&gt;2. Utilizando o comando sp_helptext&lt;br&gt;&lt;br&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;Exemplo de trigger 2&quot; border=&quot;0&quot; alt=&quot;Exemplo de trigger 2&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjif0LxXqKM3Cnv_cEOKz4jEKR_PL4Rn_jJU73sI6Zh5Mo4KEFx1tkQfKJXW_LhFwBz3Ewrnz4mLBvZGiBPYbM7q99HtFbO3i24gkIpGvb5H7ZuTJsNtwyGj3q2nPOa4UTKnH6MthjLS_Ws/?imgmax=800&quot; width=&quot;694&quot; height=&quot;584&quot;&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;br&gt;Vamos agora rapidamente olhar um código documentado de uma trigger completa (baixa estoque ao inserir itens na nota):&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fc1a857c-ac38-4ffc-8415-ddc425c464bc&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgiNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;/* &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#008000&quot;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;Autor: Fabiano Cores &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;Data : 06/12/2010 &lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;Site : http://sqlburger.blogspot.com &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#008000&quot;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;Desenvolvido para demonstrar a utilização de  &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;triggers no SQL Server. A reprodução deste  &lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;artigo só é permitida se forem mantidos os  &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;créditos do autor. &lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#008000&quot;&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;*/&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;/* A tabela inserted existe &amp;quot;virtualmente&amp;quot; durante     &lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#008000&quot;&gt;a execução de uma trigger. Ela possui exatamente    &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;     &lt;span style=&quot;color:#008000&quot;&gt;a mesma estrutura da tabela da trigger, e contem    &lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#008000&quot;&gt;todos os registros inseridos no evento INSERT,      &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;     &lt;span style=&quot;color:#008000&quot;&gt;que disparou a trigger. */&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vcd_empresa   &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vnr_serie     &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;3&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vnr_nota      &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vcd_item      &lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;13&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vqt_faturada  &lt;span style=&quot;color:#0000ff&quot;&gt;decimal&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;4&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vvl_unitario  &lt;span style=&quot;color:#0000ff&quot;&gt;money&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; cur_NF_Item &lt;span style=&quot;color:#0000ff&quot;&gt;cursor&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;local&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;fast_forward&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;read_only&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; cd_empresa &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_serie &lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_nota &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; cd_item &lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_faturada &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; vl_unitario &lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; inserted &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;       &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;open&lt;/span&gt; cur_NF_Item &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;while&lt;/span&gt; 1 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 1 &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;fetch&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;next&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; cur_NF_Item &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; @vcd_empresa &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                                   &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vnr_serie &lt;/li&gt; &lt;li&gt;                                   &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vnr_nota &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                                   &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vcd_item &lt;/li&gt; &lt;li&gt;                                   &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vqt_faturada &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                                   &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vvl_unitario &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;@@fetch_status&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0 &lt;span style=&quot;color:#0000ff&quot;&gt;break&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#008000&quot;&gt;/* Para cada item que foi inserido, executo o &lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#008000&quot;&gt;procedimento que movimenta estoque (só para &lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;       &lt;span style=&quot;color:#008000&quot;&gt;exemplificar) */&lt;/span&gt; &lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; spcMovimentaEstoque&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@vcd_empresa &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                           &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vnr_serie &lt;/li&gt; &lt;li&gt;                           &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vnr_nota &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                           &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vcd_item &lt;/li&gt; &lt;li&gt;                           &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vqt_faturada &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                           &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @vvl_unitario &lt;/li&gt; &lt;li&gt;     &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;     &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;close&lt;/span&gt; cur_NF_Item &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;deallocate&lt;/span&gt; cur_NF_Item &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;strong&gt;&lt;br&gt;&lt;br&gt;CABEÇALHO DE UMA TRIGGER&lt;br&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div align=&quot;justify&quot;&gt;O primeiro parâmetro é o NOME (tgiNotaItem) da trigger, forma como o objeto será identificado no banco de dados. Quando uma trigger é criada, é gerado um registro na tabela SYSOBJECTS. Para se atribuir o nome da trigger, tenho como padrão colocar tgiTabela (trigger de insert), tgdTabela (trigger de delete), tguTabela (trigger de update), ou somente tgTabela, quando ambas as situações são contempladas no código.&lt;br&gt;&lt;/div&gt; &lt;li&gt; &lt;div align=&quot;justify&quot;&gt;O segundo parâmetro é o nome da tabela que será vinculada a esta trigger (no exemplo abaixo, estamos colocando um gatilho na tabela NotaItem).&lt;br&gt;&lt;/div&gt; &lt;li&gt; &lt;div align=&quot;justify&quot;&gt;O terceiro parâmetro (“for insert”) determina o tipo de trigger, que vamos entender melhor cada uma adiante.&lt;br&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6890bb69-b377-4050-9a2a-17881fc49594&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; trigger_name &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; { table_name } &lt;/li&gt; &lt;li&gt;{ &lt;span style=&quot;color:#0000ff&quot;&gt;FOR&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;/&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;AFTER&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;INSTEAD&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OF&lt;/span&gt; }&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt; { [INSERT] [,] [DELETE] [,] [UPDATE] } &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   sql_statement [ ...n ] &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;br&gt;&lt;br&gt;Tipos de triggers&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;&lt;/strong&gt;Existem 2 tipos de triggers no SQL Server (e na maioria dos SGBD do mercado).&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;AFTER: A trigger somente é executada após a gravação dos dados na tabela (padrão quando cria trigger)&lt;br&gt;INSTEAD OF: A trigger será disparada ANTES do registro ser modificado na tabela.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;O tipo AFTER é o mais comum de ser utilizado. O tipo INSTEAD OF tem aplicações mais específicas. Os casos mais comuns em que utilizei este tipo de trigger foi para criar bloqueios em sistema que não detenho o código fonte (exemplo: lançamentos contábeis em período fechado, não permite gravar). Mais adiante falaremos mais sobre este tipo.&lt;br&gt;&lt;br&gt;Exemplos:&lt;br&gt;&lt;br&gt;&lt;strong&gt;AFTER&lt;br&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f6943513-73a6-49f4-92b9-7b2d76d12e37&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgiNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;FOR&lt;/span&gt; { &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;delete&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;update&lt;/span&gt; }&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;OU&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgiNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;AFTER&lt;/span&gt; { &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;delete&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;update&lt;/span&gt; }&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;justify&quot;&gt;&lt;br&gt;&lt;strong&gt;INSTEAD OF&lt;/strong&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:90c74f7a-0bf1-4614-9a91-265df0655323&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgiNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;INSTEAD&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;OF&lt;/span&gt; { &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;delete&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;update}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;justify&quot;&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;Eventos de disparo de uma trigger&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;&lt;/strong&gt;Uma trigger é disparada quando um evento de INSERT, DELETE ou UPDATE ocorre em uma tabela. Para isso, é necessário informar ao SQL que tipo de evento deseja tratar, que pode INSERT, DELETE ou UPDATE.&lt;br&gt;&lt;br&gt;Exemplos:&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3197ea97-746b-4ae7-9bfd-ea5df46ba5a2&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- Trigger que será executada ao inserir um item no sistema     &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgiNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem      &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;FOR&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  sql_statement [ ...n ] &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- Trigger que será executada ao excluir um item no sistema&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgdNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;FOR&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;delete&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  sql_statement [ ...n ] &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- Trigger que será executada em qualquer operação de manipulação     &lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- de dados na tabela (insert, delete ou update)&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;FOR&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;delete&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;update&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  sql_statement [ ...n ]&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;br&gt;TABELAS “DE AMBIENTE” EXISTENTES NA EXECUÇÃO DE UMA TRIGGER&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Ao desenvolver uma trigger, você precisa ter acesso aos dados EM ATUALIZAÇÃO (no caso de insert, quais dados estão sendo inseridos, para exclusão quais estão sendo excluídos, e assim por diante). Para isso, chamo-as de “tabelas de ambiente”, que só existem no momento em que uma trigger está sendo executada. &lt;br&gt;&lt;br&gt;Existe duas tabelas, chamadas INSERTED (registros incluídos ou alterados – novos valores) e DELETED (registros excluídos ou alterados – valores anteriores). Estas tabelas “virtuais” possuem exatamente a mesma estrutura da tabela em que a trigger foi criada. Vamos separar somente o trecho do código que busca dados desta tabela.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;br&gt;Exemplo:&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ae1d9ed3-57b9-4265-a0a7-0112e25110e2&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;CREATE&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;trigger&lt;/span&gt; tgiNotaItem &lt;span style=&quot;color:#0000ff&quot;&gt;on&lt;/span&gt; NotaItem &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#808080&quot;&gt;...&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; cur_NF_Item &lt;span style=&quot;color:#0000ff&quot;&gt;cursor&lt;/span&gt; &lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;local&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;fast_forward&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;read_only&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt; &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; cd_empresa &lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_serie &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_nota &lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; cd_item &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_faturada &lt;/li&gt; &lt;li&gt;         &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; vl_unitario &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; inserted &lt;/li&gt; &lt;li&gt;       &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;open&lt;/span&gt; cur_NF_Item &lt;/li&gt; &lt;li&gt;   &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#808080&quot;&gt;...&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt;Observe que estou buscando dados de uma tabela INSERTED, porém se olhar esta tabela no Object Explorer, perceberá que ela não existe. Ela somente vai existir durante a execução de uma trigger. Os updates são ainda mais interessantes. Toda vez que um UPDATE é feito em uma tabela, durante a execução da trigger nós teremos na tabela DELETED quais eram os dados antes do update, e na INSERTED quais são os novos valores dos registros alterados. &lt;br&gt;&lt;br&gt;Fique atento para o próximo capítulo da saga. Na próxima parte vamos entender mais sobre a parte prática, parâmetros e o comportamentos das triggers.&lt;br&gt;&lt;br&gt;=)&lt;/p&gt; &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;ca-pub-3972945704402371&quot;;&lt;br /&gt;/* SQLBurger_ad_botton */&lt;br /&gt;google_ad_slot = &quot;2137613044&quot;;&lt;br /&gt;google_ad_width = 728;&lt;br /&gt;google_ad_height = 90;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/8429825994060668942/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/12/triggers-para-iniciantes-no-sql-server.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8429825994060668942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8429825994060668942'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/12/triggers-para-iniciantes-no-sql-server.html' title='Triggers para iniciantes no SQL Server – Parte 1/3'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhi7ySjknInx7ufJoEwTWxeQZY54WBXKUt-CfyMJoIj9jzusL7d-9sUKN2QyNWPHW4VSHz52VezgPM-_JTx1iArXO44p9YqZxQTxSpDv12jhBNCVMmAjOtx3kjVMMs6fzMM_l2dg1XEhoj/s72-c?imgmax=800" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-742884078806603459</id><published>2010-12-04T20:26:00.001-02:00</published><updated>2010-12-05T00:45:47.538-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Avançado"/><category scheme="http://www.blogger.com/atom/ns#" term="Manipulação de string"/><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>SQL Dinâmico – usar código para criar código</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIde1AaywqDuuJePxlOVO9TCb3ZTRWKYET7poXpKRx4qmMod6hCsdShkDYzAfMlW71DoyLZt7V5sCMm4VfCaVTTNO5wAQNssFzBp_JTLZ16B5B-QgW_Le9cldG6wOctKpxNJqlJD1vL_ue/s1600-h/image%5B15%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRAt-9csqZLcv35L1tWtXTVrE8lVKEYfLBNXollpVXZiG6ZKjHZ0o1vOrasz4sO0mNOXl-bAM9-v7nglomtMtI4dgfFDM5PS9Bht-93bdYCyYGwnuuusdxRvJOMUnr-K2CcxBRJ73xramS/?imgmax=800&quot; width=&quot;244&quot; height=&quot;61&quot;&gt;&lt;/a&gt; Hoje vou demostrar um pequeno exemplo de como utilizar programação dinâmica no SQL. No exemplo aqui demonstrado, utilizo o SQL dinâmico para definir a estrutura de uma tabela temporária de acordo com os dados que desejo exibir.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Eu montei rapidamente um modelo similar a um relatório que fiz recentemente. Eu precisava retornar os fornecedores como colunas, e doze meses como linhas, para montar uma grande planilha de dados. Para poder retornar o fornecedor na coluna, montei um loop nos fornecedores que deverão entrar no relatório, e utilizei o nome fantasia como nome da coluna que receberá o valor do mês/ano específico. Dentro deste mesmo loop, já busco o valor dos títulos deste fornecedor, e atualizo a tabela temporária. Depois só retorno os resultados. &lt;/p&gt; &lt;p&gt;Vamos então ver o código. Tentei comentar da melhor forma possível para explicar cada passo do procedimento.&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot; cellpadding=&quot;2&quot; width=&quot;98%&quot; bgcolor=&quot;#ffffff&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;100%&quot;&gt; &lt;div&gt;&lt;span style=&quot;font-family: courier new; font-size: 10pt&quot;&gt;&lt;font color=&quot;blue&quot;&gt;&lt;br&gt;create&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;proc&lt;/font&gt;&amp;nbsp;&lt;b&gt;spcExemploSQLDinamico&lt;/b&gt; &lt;br&gt;&lt;font color=&quot;blue&quot;&gt;as&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;/* &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; Autor: Fabiano Cores &lt;br&gt;&amp;nbsp;&amp;nbsp; Data : 04/12/2010 &lt;br&gt;&amp;nbsp;&amp;nbsp; Site : &lt;a href=&quot;http://sqlburger.blogspot.com&quot;&gt;http://sqlburger.blogspot.com&lt;/a&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; Desenvolvido para demonstrar a utilização de querys &lt;br&gt;&amp;nbsp;&amp;nbsp; dinâmicas no SQL Server. A reprodução deste artigo &lt;br&gt;&amp;nbsp;&amp;nbsp; só é permitida se forem mantidos os créditos do autor.&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; */&lt;br&gt;&lt;/font&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;declare&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#0000ff&quot;&gt;varchar&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;black&quot;&gt;8000&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;declare&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@vcd_cadastro&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#0000ff&quot;&gt;int&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;declare&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@vfantasia&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#0000ff&quot;&gt;varchar&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;black&quot;&gt;20&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;declare&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@valor&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#0000ff&quot;&gt;money&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;declare&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#0000ff&quot;&gt;smalldatetime&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Crio a temporária que receberá modificações dinâmicas&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;create&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;table&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;#tmp&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;#000000&quot;&gt;mes&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;tinyint&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;null&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;ano&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;smallint&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;null&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Preencho a tabela com as datas. Pego o ano atual,&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- e defino como primeiro de janeiro, para pegar o ano&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- inteiro.&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;getdate&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;-01-01&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;set&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;&#39;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;while&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;1 &lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;= &lt;/font&gt;&lt;font color=&quot;black&quot;&gt;1&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;begin&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Aqui estou montando uma query dinâmica. Veja que estou&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- concatenando várias querys em uma variável VARCHAR, para&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- posterior execução.&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;insert into #tmp (mes, ano) &#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;values (&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;,&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;)&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;char&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;black&quot;&gt;13&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;char&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;black&quot;&gt;10&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Caso tenha inserido os 12 meses do ano, saio do loop&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;if&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;12&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;break&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- A cada ciclo do loop, pulo um mês&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;dateadd&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;blue&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;1&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;end&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Aqui executo a query montada acima.&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;exec&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- limitei em um TOP 25 para não trazer muitos registros&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- O distinct é para que retorne apenas uma vez cada&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- fornecedor neste select.&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;declare&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;cp1&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;cursor&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;local&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;fast_forward&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;read_only&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;for&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;distinct&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;top&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;25&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;a&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;cd_cadastro&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;a&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;fantasia&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;from&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;cadastro&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;a&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;fornecedor&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;b&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;titulofor&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;c&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;where&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;a&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;cd_cadastro&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;b&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;cd_cadastro&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;and&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;a&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;situacao&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;A&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;and&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;a&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;cd_cadastro&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;c&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;cd_cadastro&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;and&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;c&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;dt_lancamento&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;getdate&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;and&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;c&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;situacao&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;in&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;red&quot;&gt;&#39;A&#39;&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;L&#39;&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;order&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;by&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;a&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;.&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;fantasia&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;/* &lt;br&gt;&amp;nbsp;&amp;nbsp; As tabelas aqui utilizadas e parâmetros devem ser&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; desconsiderados. Adapte este procedimento ao seu &lt;br&gt;&amp;nbsp;&amp;nbsp; banco de dados. &lt;br&gt;&amp;nbsp;&amp;nbsp; */&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp; &lt;/em&gt;&lt;font color=&quot;blue&quot;&gt;open&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;cp1&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;while&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;1&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;1&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;begin&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;fetch&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;next&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;from&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;cp1&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;into&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@vcd_cadastro&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@vfantasia&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;if&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;@@fetch_status&lt;/font&gt;&amp;nbsp;&lt;em&gt;&lt;font color=&quot;silver&quot;&gt;&amp;lt;&amp;gt;&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;0&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;blue&quot;&gt;break&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;/em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Adiciono colunas na tabela com o nome do fornecedor&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;alter table #tmp add [&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;ltrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@vfantasia&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;] money null&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;exec&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;getdate&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;-01-01&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;while&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;1&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;1&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;begin&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Sempre inicialize uma variável dentro de um loop.&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;set&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@valor&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;0&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@valor&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;sum&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;vl_titulo&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;from&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;titulofor&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;where&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;situacao&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;in&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;red&quot;&gt;&#39;A&#39;&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;L&#39;&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;and&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;cd_cadastro&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@vcd_cadastro&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;and&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;dt_lancamento&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;and&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;dt_lancamento&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@valor&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#ff0080&quot;&gt;&lt;b&gt;isnull&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@valor&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;0&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- Para montar o update, uso novamente o nome &lt;br&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- fantasia do fornecedor para saber qual o &lt;br&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;green&quot;&gt;-- nome da coluna que preciso atualizar o valor.&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;update #tmp &#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;&amp;nbsp;&amp;nbsp; set [&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;ltrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@vfantasia&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;] = &#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@valor&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39; where mes = &#39;&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;&amp;nbsp;&amp;nbsp; and ano = &#39;&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;+&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;rtrim&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;fuchsia&quot;&gt;year&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;exec&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;if&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;12&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;break&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;fuchsia&quot;&gt;dateadd&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;blue&quot;&gt;month&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;black&quot;&gt;1&lt;/font&gt;&lt;font color=&quot;silver&quot;&gt;,&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@data&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;end&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;end&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;close&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;cp1&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;deallocate&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;cp1&lt;/font&gt;&lt;em&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;/em&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;select&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;silver&quot;&gt;=&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;&#39;select * from #tmp order by ano, mes&#39;&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;font color=&quot;blue&quot;&gt;exec&lt;/font&gt;&amp;nbsp;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;@sql&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;/font&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;br&gt;O resultado é um relatório estruturado dinamicamente:&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrf9YfqUiOQKlGZRFeoKtimAZH0i5jdiqiNrE0oFos9KKeVem1eg_Tu0EX4wukN-5IA8LaOsUFKjO2fdEOTLztubPQg78IzGscI3myO65r_HU5LCeZkjpmi8Az3P6fEmYp_39ZU9QZco-J/s1600-h/image%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ7ZILnaS27NAoXUlrEchkGAzzPkVYtMPMGqg6oVYMzS1_vVly4AO39yme8jVFcUqcimTwSxE22e02CLJyVWY23TUKQQiYhKPtmVNrySJDQYz9QHNCvxbRBt1qs6oULEZWHiLa5smLfNGO/?imgmax=800&quot; width=&quot;710&quot; height=&quot;594&quot;&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/742884078806603459/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/12/sql-dinamico-usar-codigo-para-criar.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/742884078806603459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/742884078806603459'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/12/sql-dinamico-usar-codigo-para-criar.html' title='SQL Dinâmico – usar código para criar código'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRAt-9csqZLcv35L1tWtXTVrE8lVKEYfLBNXollpVXZiG6ZKjHZ0o1vOrasz4sO0mNOXl-bAM9-v7nglomtMtI4dgfFDM5PS9Bht-93bdYCyYGwnuuusdxRvJOMUnr-K2CcxBRJ73xramS/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-8838451647271336388</id><published>2010-12-03T17:52:00.001-02:00</published><updated>2010-12-03T17:58:10.935-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Curiosidades"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Afinal de contas, maiúsculo ou minúsculo?</title><content type='html'>&lt;p&gt;Este é apenas um pequeno post “desabafo”. Muitos programadores me questionam por que eu programo em SQL usando somente letras minúsculas. Vamos fazer uma pequena comparação de um código do jeito que eu faço, um no padrão que os programadores dizem ser o “correto”, e mais para o final, um terceiro procedimento, que é código interno do SQL.&lt;br&gt;&lt;font size=&quot;3&quot;&gt;&lt;/p&gt;&lt;/font&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;97%&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td bgcolor=&quot;#c0c0c0&quot; valign=&quot;top&quot; width=&quot;50%&quot;&gt;&lt;strong&gt;Maneira como eu programo&lt;/strong&gt;&lt;/td&gt; &lt;td bgcolor=&quot;#c0c0c0&quot; valign=&quot;top&quot; width=&quot;50%&quot;&gt;&lt;strong&gt;Padrão considerado “correto”&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;50%&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvsT6rt4tCuiurbm1lCil5et88iBRxCnaGlu6WaJ-Yza3cWV_aYpT1-0p3_62UZdn7TndbI0-Xiae3ciDQPC45jl7B_NIaJiRXUqiFxabFzxOO-yZ3iDUNJmZy3UjRK-lt7akK1sY4VnN-/s1600-h/image%5B29%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYElnptYaAEPV1v_MxRVb_tlnKGPn7YhPVe8VfS8BbKuJMZzZLFQxTWa3rCZLEbdtShcce7t8cNf4A6N-Yn-_qzfv1JLThBWsfAkn6_sVkpCfXUNn5X4qkLgiZxEsaFVSYvFjuUKtywXWB/?imgmax=800&quot; width=&quot;300&quot; height=&quot;296&quot;&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;50%&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8JY6DiWLD8qHTttSRmVZ6zpU8_xahfP0kG3UJBBtguGZmpYiE1-rrFRIOIyZcAccR3wgLxzQxWZ1mgxIdLSTw_3HEUUdIvTLKJkyLxUrpLzj2EQOY3ovjON5XjZC2RbIQHwyXNCuM-Bck/s1600-h/image%5B36%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8stATi3pdEBBT0CeE_vFFtjjYCxOUFCHE4SsvcNamwHJjdzZiR7-xGJZIBBFdshWh5eSc7Vi87BQU0LNYfMl8U1P1b7HfsSKslMJHYZwzqN0RGFiFp__VIuBb3XPaf2aLCW74R9LXf18I/?imgmax=800&quot; width=&quot;301&quot; height=&quot;292&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;br&gt;Em primeiro lugar, minha influência em programação veio de meu pai, que sempre programou em C. Uma coisa inclusive que detesto no C++/C# é o fato de ser case sensitive. Isso é irritante! Hoje com as ferramentas atuais (visual studio por exemplo) isso “teoricamente” não é mais problema.&lt;/p&gt; &lt;p&gt;Bom, eu honestamente, acho uma grande besteira ficar ligando e desligando o CAPS LOCK enquanto se programa. Se o SQL tem o recurso de identificar todas as palavras do código por cor, pra você identificar comandos, strings, operadores, não vejo sentido nenhum nessa formatação. E pessoalmente, acho muito mais agradável e bonito o código sem letras maiúsculas, pra mim só poluem a tela.&lt;/p&gt; &lt;p&gt;Mas se ainda insistir em achar que eu estou errado, vamos dar uma olhadinha então nos códigos de programadores que desenvolveram o SQL! Sim, podemos ver esses códigos! Vamos pegar aqui, duas funções muito comuns do SQL (sp_help e sp_spaceused), e ver como é o código delas (basta usar sp_helptext para visualizar o código do procedimento):&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td bgcolor=&quot;#c0c0c0&quot; valign=&quot;top&quot;&gt;exec sp_helptext &#39;sp_help&#39;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHGDGtrU6rYit9IFi4FQkuBQqoxutbD5_w8SndmSEciF2iLKobQgWpsAuGxvu8mndNh9f6YDnrxZiwrrr7ocDq0vy6hB35nQxVpdvlU99wvyz0aRJQrGymLWdTOdQxl1aeeXB9sDOzQaqr/s1600-h/image%5B19%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfv0p4VeA5W-CKZP5peNa_kxxMGCqAQ92m4mNX5pcGWzghotE_wdfxOT52INXV4txazgtQdw98fCsPjN1BX6FnRc8CNctRS1HEhO1sVL9GuHiLE-SLM-b4zX1jq1JF-Ee4TDc76obbmw4P/?imgmax=800&quot; width=&quot;586&quot; height=&quot;477&quot;&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt; &lt;p&gt;&lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;2&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td bgcolor=&quot;#c0c0c0&quot; valign=&quot;top&quot; width=&quot;50%&quot;&gt;exec sp_helptext &#39;sp_spaceused&#39;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;50%&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEfoJBgrabF1C70SzZbZXobnHm8LddcWCCguRLCHNyy0H1Q7Vlt3C2RRhGBWlmVLjCQb-pPmv5cxIhB_IG1oMhBaRIe39Ma1uTJzhVzX9smFViaT5q2t2jgVHueCOeNj-QqDuxeHgcArz4/s1600-h/image%5B23%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV1SlFng3rU7nPC9hUvfjvLX1Tg8G98E367xWeUZ8qAJ6lE5pRB1lxRMJf1U4uwqNMrt2xtu2gSgo6Bvuv4gtehcppjTdpXj1J-7ersdLQMldzs-2yDsZZw9b5m451Zvm-4-JP9MFKGxMo/?imgmax=800&quot; width=&quot;521&quot; height=&quot;566&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVvr9PQ3249U53Px7rHZ81Kup07cRHsja6w-Q8PF4tjt2KfQcbOG0ZO8vd1L0jiHw4GOAkIT2A-jyg-PW3mpvmYTWax9dzXOlciN35dnCyLKVN1K7EE3NWHn6GU5abaWtImWbq7tiZtlhU/s1600-h/image%5B27%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUURoiIAQC2Nw7c23kU1URoV69CoonUyqmSF61rr5w07CoHh8w-mxhkk-y7VpRUrP77snMq80fM9WKqK_CAQCFKZCGprAarGBucVchjLMcv1GPrrJYxBaDyLxiuLUW4JLvKCsZ_0KEHOzc/?imgmax=800&quot; width=&quot;566&quot; height=&quot;575&quot;&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;Se quiser ver no seu próprio SQL, é só executar “ sp_helptext &#39;sp_spaceused&#39; ” ou “ sp_helptext &#39;sp_help&#39; ” e você vai ver como foram feitos o código T-SQL dos procedimentos internos mais utilizados do SQL Server.&lt;br&gt;&lt;br&gt;:D&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/8838451647271336388/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/12/padronizacao-de-codigo-sql.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8838451647271336388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/8838451647271336388'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/12/padronizacao-de-codigo-sql.html' title='Afinal de contas, maiúsculo ou minúsculo?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYElnptYaAEPV1v_MxRVb_tlnKGPn7YhPVe8VfS8BbKuJMZzZLFQxTWa3rCZLEbdtShcce7t8cNf4A6N-Yn-_qzfv1JLThBWsfAkn6_sVkpCfXUNn5X4qkLgiZxEsaFVSYvFjuUKtywXWB/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-5308800404080909184</id><published>2010-12-02T16:49:00.001-02:00</published><updated>2010-12-22T23:51:13.359-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DB Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Calculando o tamanho de cada tabela no SQL Server</title><content type='html'>&lt;p align=&quot;left&quot;&gt;Hoje vou descrever uma solução que adotei durante uma visita a um cliente que estava com problemas de tamanho e performance no banco de dados. Ele utiliza Microsoft SQL Server 2005 para armazenar os dados do seu aplicativo. O problema é que precisávamos detectar tabelas que estavam grandes demais, e estavam absorvendo muitos recursos de armazenamento (tanto no servidor como no backup) e também recursos de processamento e memória. Só não confunda espaço do banco de dados com arquivo de LOG, que abordarei em um próximo artigo.&lt;br&gt;&lt;br&gt;O trabalho teve várias etapas, porém vou descrever as que trouxeram maior resultado efetivo. Eu dividi o trabalho em duas partes. Primeiro identifiquei as tabelas que ocupando mais espaço. Depois, remodelei as tabelas de forma a utilizarem o espaço do banco de dados de forma mais adequada. Muitas vezes, um sistema utilizado em diversos segmentos, pode acabar tendo suas dimensões desproporcionais. Vou dar um exemplo muito simples. Você tem um sistema ERP que foi desenhado para indústrias, porém o implanta em uma distribuidora que emite 300 notas fiscais por dia, diferente do que havia sido previsto quando o sistema foi pensado para uma fábrica de médio porte. Neste exemplo, se as tabelas de notas fiscais conter campos mal dimensionados, ou relacionamentos redundantes, podem acarretar problemas de espaço e performance a longo prazo.&lt;br&gt;&lt;br&gt;Neste artigo, vou abordar exclusivamente o cálculo do tamanho das tabelas. As modificações estruturais de tabelas, e demais otimizações, não vou abordar neste momento. O primeiro código que vamos analisar, é uma rotina que criei que relaciona todas as tabelas no banco de dados, calcula individualmente o espaço utilizado por cada uma e exibe no final um relatório ordenado pelas tabelas que mais utilizam espaço do banco.&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;sys.sp_spaceused&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;Este procedimento interno do SQL Server retorna informações sobre o tamanho do banco de dados, e também especificamente de tabelas passadas como parâmetro. &lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:abd6b113-d4e4-4711-beae-bbd1dbcbb5f1&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;            &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_spaceused&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- retorna informações do banco&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;OU&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_spaceused&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;cadastro&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;-- retorna informações da tabela&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;left&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6jy3fixnFhY79qJT1kSN_ndgnvfQkUO2m0N-gQLMvL_tLWAnkqleKclCElKxUzrZ1Qbgy3NK2s4ujG91m7wIcHMkmACE3XsXqsSYhexmhQEF49xUxNzWBjWbCYsTloomsns9AS7KXrDlT/s1600-h/image%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmpGl_xuVf87tzvt0CspxUsbIUR4kw1gffVBUCAWBhKBgYwTFFuWIfgNDKJIv61-75q6_e-JdolUzv5f-SemiqNXyrFFgHxsQShgIgrh5QnNvUsfO7RY4ZRihXiKCx7YOh8YxUVlwSmMUg/?imgmax=800&quot; width=&quot;494&quot; height=&quot;442&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;RESERVED: Espaço total reservado pelo banco de dados “para armazenamento de dados”. Por mais que sejam excluídos registros do banco, ele nunca reduz o seu tamanho (a não ser que seja feito o Shrink Database, que irá devolver ao disco o espaço UNUSED do banco).&lt;br&gt;&lt;br&gt;DATA: Quantidade em KB de dados no banco de dados&lt;br&gt;&lt;br&gt;INDEX_SIZE: Tamanho utilizado somente para a indexação de valores. Muitos índices em um banco podem elevar consideravelmente o tamanho do banco, é necessário estar atento. &lt;br&gt;&lt;br&gt;UNUSED: Espaço que foi alocado ao banco de dados, porém não está sendo utilizado. Este espaço pode ser retomado ao disco através da ferramenta Shrink Database.&lt;br&gt;&lt;br&gt;&lt;br&gt;Quando passamos o nome de uma tabela como parâmetro, obtemos a mesma informação, porém os valores informados especificamente da tabela, com a diferença que temos uma coluna a mais, chamada ROWS, que retorna o número de linhas nesta tabela:&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6F8T50iNsnMkWB5iV5QB-BzNtuizU3DPh9XSa27mFD1oMeFIsCb_VrwKdfweZ6bTNpOYlC5ju2cr0zS_-x54_WU5-fi83V4mXNC3gKzri4-r00_qlCgCJEgYqj8nT7enKOJgaynUtkMYv/s1600-h/image%5B8%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikqu3XGoo7KIJBwIXu-fQscR2n2mH7xN46P5q75Ypsk1pxMjRW4FyGaww7dO5Tr7ciRy60F7w6yrSS7nJd1SM-gz2E6NzpTGKxsC78CJkXLtUrnbqYrFDX6QFhco3873OBPhSXq0EDeoJw/?imgmax=800&quot; width=&quot;494&quot; height=&quot;442&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;Utilizando esta ferramenta do sistema, criei o seguinte procedimento:&lt;br&gt;&lt;br&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b7a5dddf-6f6d-46b2-9018-76d4b752fdde&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; sp_espacotabela&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&lt;span style=&quot;color:#008000&quot;&gt;/*&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#008000&quot;&gt;Fabiano Cores 02.12.2010&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#008000&quot;&gt;http://sqlburger.blogspot.com&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;*/&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @vname &lt;span style=&quot;color:#0000ff&quot;&gt;sysname&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @tmpTamTabela &lt;span style=&quot;color:#0000ff&quot;&gt;table &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    name       &lt;span style=&quot;color:#0000ff&quot;&gt;sysname&lt;/span&gt;     &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;rows&lt;/span&gt;       &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;         &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; reserved   &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;25&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; data       &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;25&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; index_size &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;25&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; unused     &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;25&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;null&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; cp1 &lt;span style=&quot;color:#0000ff&quot;&gt;cursor&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;local&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;fast_forward&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;read_only&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;for&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;type&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;U&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;     &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; name&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;open&lt;/span&gt; cp1&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;while&lt;/span&gt; 1 &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;begin&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;fetch&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;next&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; cp1 &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; @vname&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;@@fetch_status&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0 &lt;span style=&quot;color:#0000ff&quot;&gt;break&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; @tmpTamTabela&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;name&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;rows&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; reserved&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;                             &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; data&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; index_size&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; unused&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#0000ff&quot;&gt;exec&lt;/span&gt; &lt;span style=&quot;color:#800000&quot;&gt;sp_spaceused&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;@vname&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;end&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;close&lt;/span&gt; cp1&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;deallocate&lt;/span&gt; cp1&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Nome&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;rows&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Linhas&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;reserved&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; KB&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Tamanho total&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;data&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; KB&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Dados&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;index_size&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; KB&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Index&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;       &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;unused&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; KB&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Não utilizado&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; @tmpTamTabela&lt;/li&gt; &lt;li style=&quot;background: #f3f3f3&quot;&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;reserved&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39; KB&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;desc&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;br&gt; &lt;p&gt;&lt;br&gt;O código acima já está preparado para ser salvo no banco de dados, através do nome sp_espacotabela. Vamos ver agora sua execução, e o resultado apresentado:&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-SKKUYKalMzzzMfjWquSiUG_Vk2nMbPYg93TvNtJnM6wgg6eHeDq-nwLyVDL32wQY2ebH6APe7SECEGtlpGqD4sFOK3gj3UWhG_WrBgworDJciHUZDxW7MlojO4IlHf0oMyZOlc9JHfsi/s1600-h/image%5B12%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbVDuc2mcSH6OScmX_X9xbAc3tApRRInIevfXgF8O_A9mAZ8VJfsI60ugCd1OOUUEB-APE5lxo8PlDjCAUb9N6dq6QXHumWJkNcJk_Ns8XYq07xa5UOkxUhXRUCnOKjTyJelz5jQ46nlzr/?imgmax=800&quot; width=&quot;620&quot; height=&quot;542&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;O resultado é um relatório que retorna todas as tabelas, e os respectivos valores de consumo de tamanho em disco, conforme explicado acima. Você pode exportar esta lista para o excel, e fazer várias visões, como analisar índices x quantidade de linhas, ordenar por espaço não utilizado, etc). Observe que pode ser modificado o último SELECT do procedimento, para ordenar por outro valor. Eu optei em ordenar pelo tamanho total da tabela (RESERVED), que é o que importa nesta análise.&lt;/p&gt; &lt;p&gt;Após visualizar o relatório, pegamos as 10 tabelas mais inchadas do banco (de um banco com aproximadamente 2500 tabelas). Geralmente são as tabelas de LOG, notas fiscais, cupons, etc. Observamos a presença de campos tipo TEXT desnecessários (para armazenar média de 80 a 180 caracteres). Mudamos para CHAR(250), e assim por diante. Com uma pequena modificação como esta, chegamos a otimizar 3GB de uma única tabela (as imagens utilizadas aqui são somente para exemplificar). &lt;/p&gt; &lt;p&gt;Outras tabelas, como notas fiscais e lançamentos financeiros, fizemos uma espécie de datawarehouse, deixando na base de dados de trabalho 3 anos de histórico, os demais anos foram separados em uma base onde os relatórios consolidam estes bancos. A transição dos dados é feita automaticamente a partir de uma JOB, sem a necessidade de intervenção do usuário. O backup do período anterior fica intacto, armazenado em mídia separada. O backup feito diariamente passou a ser dos últimos 3 anos. &lt;/p&gt; &lt;p&gt;Todas estas modificações trouxeram grandes benefícios, como otimização dos backups, mais velocidade em processos críticos do sistema (faturamento, log), banco de dados mais enxuto, sem alocar grandes espaços desnecessários, e assim por diante.&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;Resultados&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;/strong&gt;No final, aplicando as técnicas aqui descritas, e outras manutenções, o banco de dados de produção, que estava com 13,5GB de tamanho, ficou com modestos 1,8GB. O backup, que é totalmente automatizado, estava levando mais de 5 horas para ser realizado, pois o banco compactado ficava com 3,0GB. Levava 1 hora para compactar, e 4 horas para transmitir. E se houvessem quedas de internet durante a transmissão, esta tinha que ser feita manualmente. Hoje, o arquivo de backup compactado está com 122mb, leva 2 minutos para ser gerado e 20 minutos para ser transmitido. &lt;/p&gt; &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;ca-pub-3972945704402371&quot;;&lt;br /&gt;/* SQLBurger_ad_botton */&lt;br /&gt;google_ad_slot = &quot;2137613044&quot;;&lt;br /&gt;google_ad_width = 728;&lt;br /&gt;google_ad_height = 90;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/5308800404080909184/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/12/calculando-o-espaco-utilizado-por-cada.html#comment-form' title='14 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/5308800404080909184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/5308800404080909184'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/12/calculando-o-espaco-utilizado-por-cada.html' title='Calculando o tamanho de cada tabela no SQL Server'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmpGl_xuVf87tzvt0CspxUsbIUR4kw1gffVBUCAWBhKBgYwTFFuWIfgNDKJIv61-75q6_e-JdolUzv5f-SemiqNXyrFFgHxsQShgIgrh5QnNvUsfO7RY4ZRihXiKCx7YOh8YxUVlwSmMUg/s72-c?imgmax=800" height="72" width="72"/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-7604455915076587216</id><published>2010-11-28T20:32:00.001-02:00</published><updated>2010-12-23T02:29:10.417-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Datetime"/><category scheme="http://www.blogger.com/atom/ns#" term="Manipulação de valores"/><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>Como tratar valores DATA (datetime) no SQL SERVER</title><content type='html'>&lt;p&gt;Este artigo se aplica a qualquer versão do Microsoft SQL Server a partir da versão 2000. &lt;br&gt;&lt;font size=&quot;1&quot;&gt;&lt;em&gt;&lt;strong&gt;TAGS&lt;/strong&gt;: #DATEADD, #DATEPART, #GETDATE, #BISSEXTO, #SQL, #SQLSERVER&lt;/em&gt; &lt;br&gt;&lt;/font&gt;&lt;br&gt;O SQL possui inúmeras ferramentas para o tratamento de datas. Aqui vou apresentar algumas dicas que considero as mais relevantes, que poderão ajudá-lo no desenvolvimento de suas querys.&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;CALCULAR DATA INICIAL E FINAL A PARTIR DO MÊS/ANO&lt;/font&gt;&lt;br&gt;&lt;/strong&gt;&lt;br&gt;Você está programando um código que utiliza uma procedure que já existe no banco de dados. O parâmetro para o cálculo que você possui é o mês e o ano, porém esta procedure recebe o parametro @data_inicial e @data_final. Como você faz para chamar este procedimento, se você só tem o mês e o ano?&lt;/p&gt; &lt;p&gt;Bom, o macete que vou apresentar aqui é muito simples. Vamos utilizar a função DATEADD. A função DATEADD permite adicionar ou subtrair valores específicos de uma data. Então, para começar, montamos a data inicial:&lt;br&gt;&lt;br&gt;&lt;em&gt;&lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;select @dt_inicial = rtrim(@ano) + &#39;-&#39; + right(&#39;00&#39; + rtrim(@mes),2) + &#39;-01&#39;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/em&gt;Nesta query, estamos concatenando o ano, o mês e o dia 01 fixo para o @mes e @ano que temos como parâmetro. O código right(‘00’ + rtrim(@mes,2)&amp;nbsp; serve para sempre retornar o mês com dois dígitos (01, 05, 11, 12). O formato da data que devemos montar é YYYY-MM-DD.&lt;/p&gt; &lt;p&gt;Após calcularmos a data incial, vamos utilizar a função DATEADD duas vezes. Vamos somar um mês e subtrair um dia, nesta sequencia, para descobrirmos o último dia do mês:&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#0000ff&quot;&gt;&lt;strong&gt;&lt;em&gt;select @dt_final = dateadd(day, -1, dateadd(month, 1, @dt_inicial))&lt;br&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;br&gt;A query dateadd(month, 1, @dt_inicial) retorna a data inicial com 1 mês a mais, e a função dateadd(day, –1, … ) pega este valor e subtrai um dia, desta forma teremos o último dia do @mes e @ano.&lt;br&gt;&lt;br&gt;Segue abaixo o código completo para que possa copiar:&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7e313f03-1bcb-4cca-bab4-6244e6023aaa&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;-- @mes = 3, @ano = 2010&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @mes &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @ano &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @dt_inicial &lt;span style=&quot;color:#0000ff&quot;&gt;smalldatetime&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @dt_final &lt;span style=&quot;color:#0000ff&quot;&gt;smalldatetime&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @mes &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @ano &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 2012 &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @dt_inicial &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@ano&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;-&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                   &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@mes&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;2&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;-01&amp;#39;&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @dt_final &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;dateadd&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;day&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;-&lt;/span&gt;1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;dateadd&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;month&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @dt_inicial&lt;span style=&quot;color:#808080&quot;&gt;))&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @dt_inicial &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Data inicial&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @dt_final &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Data final&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;                    &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt;&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibRI7xSwcTmNwirD51uFqqpcJAFH5VK530-yuI-JzDuKuafBj53lGw3bjwuCVS8-XGfG4nvxy7lwKBMFRMC30K8a2IMEu46u06sAD1fkXE6dGlhi5bkKctwpzOjqcCD3tbouI9Mxzvxfb1/s1600-h/image%5B19%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijqrN0HRBuWoKvgXO1kAax7s6d2gQud0pTXsQJa8EGvUIw_ca796OI7S00ybIdJmhSilNelL0lKqF6oBV8LAAxx3qAW9qGtMJgWDoEpCSswkyiEql5_5t-3Y6gxEhsMGnANABsF7hJPhnn/?imgmax=800&quot; width=&quot;678&quot; height=&quot;606&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;CÁLCULO DE ANO BISSEXTO&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;Já vi programadores fazerem cada código bizarro para descobrir se o ano é bissexto. Primeiro, que eu realmente não vejo utilidade em saber se o ano é bissexto ou não. Ah, é para definir uma variável data com o último dia do mês, mas não sabe se termina com 28, 29, 30 ou 31 dias? Esqueça isso, utilize a dica que mostrei acima. Mas de qualquer forma, o truque para calcular se um ano é bissexto é que o resultado da divisão do ano por 4 (quatro) não pode ser maior que zero. No SQL, para se descobrir o resto de uma divisão, utilizamos o operador MOD (%). Veja a query abaixo:&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOMpZ66XPBdWArMd3HzYJ-UZ-1O_7HvnAw-mcMAJyribtUafsRUOFcKqeFAyLs0q0nDNg_nxjdbRWm2exQrvq8TiPsDCOejEj2An5Ob5JHi-7uQAPOrnEe_8i6hNv-Jv5tIeg05SYzHUNK/s1600-h/image%5B10%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjExLRYGSQPYJIZoRI5ggCnV-yy1YF4IiYdfeWwSuNQDRS1fY8HGs9oiSjjTcsAsnuUGOWJYuR92zhSCXTLkz3dh3nkaZas854fMkW5DM_BovmAgXDI5CrrrkYsVRoYuRrG66b9hN4wdtUi/?imgmax=800&quot; width=&quot;557&quot; height=&quot;549&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Se o cálculo @ANO % 4 = 0, significa que o ano é bissexto, assim como no exemplo acima (ano 2012).&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;UTILIZE A FUNÇÃO DATEPART e CONVERT PARA OBTER QUALQUER VALOR DE UMA DATA ESPECÍFICA&lt;/font&gt;&lt;br&gt;&lt;/strong&gt;&lt;br&gt;Existem casos em que precisamos extrair o ano de uma data específica, ou hora e minutos, e assim por diante. Vou apresentar alguns exemplos úteis de utilização da função DATEPART e CONVERT.&lt;br&gt;&lt;br&gt;1. Pegando valores individuais de uma data (dia, mes, ano, hora, minutos e segundos) – &lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0b88d113-017d-4e77-8661-20ba5c919004&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @dia &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @mes &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @ano &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;/li&gt; &lt;li&gt;      &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @hr  &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @min &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @seg &lt;span style=&quot;color:#0000ff&quot;&gt;smallint&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @dia &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;day&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @mes &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;month&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @ano &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff00ff&quot;&gt;year&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @hr  &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;hour&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @min &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;minute&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @seg &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;datepart&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;())&lt;/span&gt; &lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Getdate() original&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @dia &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Dia&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @mes &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Mes&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @ano &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Ano&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @hr  &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Hora&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @min &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Minuto&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; @seg &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Segundo&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;                    &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;br&gt;&lt;br&gt;* A função GETDATE() retorna a data e hora atual do servidor SQL.&lt;br&gt;&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz67HWRKv6dUHcqgpcFxFm3j5uJ37ViKBJF07Pm490EXPubLLwH17M7LYnfGKFvBwMFDrEPu7ShD9br2CQyRO9Ng4j-Y1E08qyngvIYwbmQjJxJWq0nYsVwEk2-g1jYC8Or20zN36HvqJy/s1600-h/image%5B20%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOUnBTJQgPKtMjnrU8kVA_cXL6pO2llBtgq9ohsuCklB1mtAE_PhiyMnL50vAVQ3WOpNk9gThJq0n-CommrqTesJIkKvrgL6QKF-a0f9S4X7nNcEycZUvQdOF8mLN9lsGEyZF8ndV7db8b/?imgmax=800&quot; width=&quot;678&quot; height=&quot;633&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;2. Os tipos de CONVERT mais comuns com datas (#SQL = formato de data padrão do SQL YYYY-MM-DD).&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d8622849-c740-48d3-abb9-a19b44dacc57&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;()&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;Getdate() original&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(),&lt;/span&gt; 120&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;#SQL&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(),&lt;/span&gt; 103&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;PT-BR&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;10&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(),&lt;/span&gt; 101&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;US-EN&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;8&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(),&lt;/span&gt; 14&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;TEMPO-FULL&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;convert&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;5&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;getdate&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(),&lt;/span&gt; 14&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;TEMPO-SHORT&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwWi658Ukxsi3Z8FKqD2z8Heq41oVeP8SZwcqtFGLaR0YhDkts-xdpMI3AF14_Jcc-5WtE4dMxgG4dGp2rSJz_bQbgwfMsmMrAn7R-EEWqQuoUzHgT5ag-I5VNzrFkDC6LL1TWyPELzwoh/s1600-h/image%5B21%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRUNOcwK3kgA3n17VPNuf7zdPSri0yyyFp3fSFhUc9bJGypkhskOExGYVQkSyICKSYvca6cIxgWjcmfUc-5xXZB5M6gB0xeKpseHMZSEscAG6kSxMSa_Z6S-8gTrlH4yjPbiP1jydtH43c/?imgmax=800&quot; width=&quot;678&quot; height=&quot;465&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid0DX2svm_K_NqB51BovoS-_BhmobSfop2V987hQhbJLIMIQzXyMRUc4B5abXYP4cSv3yNWcOhwlpezxRqgkckLMtINrBRxIafv24kgnsATXs9TEcGwOxuFJi1fxlnSUZrUyRcb-3lRqHZ/s1600-h/3D%20GEARS%20GEAR7%5B6%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;3D GEARS GEAR7&quot; border=&quot;0&quot; alt=&quot;3D GEARS GEAR7&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif2PG6b14MwpBi0gGb18f4RotL5tE28U2kOTgeca1OR7mvkAA_r9W-JT6unkEmrOZPlag4srEDx4xoyQ3kOEqGyGnBTwK0pOTuXGzUJKzdbTJIZ3zYs3L5iIxV3X76C0CG3gx7gG3v7VJf/?imgmax=800&quot; width=&quot;64&quot; height=&quot;64&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;ca-pub-3972945704402371&quot;;&lt;br /&gt;/* SQLBurger_ad_botton */&lt;br /&gt;google_ad_slot = &quot;2137613044&quot;;&lt;br /&gt;google_ad_width = 728;&lt;br /&gt;google_ad_height = 90;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/7604455915076587216/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/11/como-tratar-valores-data-datetime-no.html#comment-form' title='9 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/7604455915076587216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/7604455915076587216'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/11/como-tratar-valores-data-datetime-no.html' title='Como tratar valores DATA (datetime) no SQL SERVER'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijqrN0HRBuWoKvgXO1kAax7s6d2gQud0pTXsQJa8EGvUIw_ca796OI7S00ybIdJmhSilNelL0lKqF6oBV8LAAxx3qAW9qGtMJgWDoEpCSswkyiEql5_5t-3Y6gxEhsMGnANABsF7hJPhnn/s72-c?imgmax=800" height="72" width="72"/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-7004017892371845115</id><published>2010-11-26T22:21:00.001-02:00</published><updated>2010-12-23T01:38:30.138-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>sysobjects, sys.objects, syscolumns e syscomments</title><content type='html'>&lt;h2&gt;Utilize as tabelas de sistema do SQL Server para turbinar seu trabalho&lt;/h2&gt; &lt;p&gt;As tabelas de sistema contém informações sobre a estrutura do seu banco de dados. Estas estruturas permitem a criação de dinâmicas de código que facilitam o dia-a-dia do programador SQL. Todas estão disponíveis a partir do SQL 2000 (com excessão da tabela SYS.OBJECTS, disponível a partir da versão 2005). Vamos conhecer as tabelas.&lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;SYSOBJECTS&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;Esta tabela armazena todos os objetos do banco de dados, tais como tables, procedures, triggers, views, functions, foreign keys, constraints, entre outros. Resumindo, todos os objetos de usuário estão nesta tabela. As principais colunas da tabela são:  &lt;p&gt;&lt;/p&gt; &lt;ul&gt; &lt;ul&gt; &lt;li&gt;Name: nome do objeto no banco de dados  &lt;li&gt;crdate: data de criação do objeto  &lt;li&gt;type: tipo do objeto.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;p&gt;Alguns exemplos de aplicação:&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:eae125a5-cc6b-43b6-b7ef-b48e4c41ad9c&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; crdate&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;type&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; name &lt;span style=&quot;color:#808080&quot;&gt;like&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;spcFAE%&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; crdate &lt;span style=&quot;color:#0000ff&quot;&gt;desc&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;Retorna o nome, data de criação e tipo dos objetos que o nome comece com “spcFAE”, ordenando por data de criação descescente. &lt;/p&gt; &lt;style&gt;&lt;br /&gt;&lt;!--&lt;br /&gt; /* Font Definitions */&lt;br /&gt; @font-face&lt;br /&gt;	{font-family:&quot;Cambria Math&quot;;&lt;br /&gt;	panose-1:2 4 5 3 5 4 6 3 2 4;&lt;br /&gt;	mso-font-charset:1;&lt;br /&gt;	mso-generic-font-family:roman;&lt;br /&gt;	mso-font-format:other;&lt;br /&gt;	mso-font-pitch:variable;&lt;br /&gt;	mso-font-signature:0 0 0 0 0 0;}&lt;br /&gt;@font-face&lt;br /&gt;	{font-family:calibri;&lt;br /&gt;	panose-1:2 15 5 2 2 2 4 3 2 4;&lt;br /&gt;	mso-font-charset:0;&lt;br /&gt;	mso-generic-font-family:swiss;&lt;br /&gt;	mso-font-pitch:variable;&lt;br /&gt;	mso-font-signature:-520092929 1073786111 9 0 415 0;}&lt;br /&gt; /* Style Definitions */&lt;br /&gt; p.msonormal, li.msonormal, div.msonormal&lt;br /&gt;	{mso-style-unhide:no;&lt;br /&gt;	mso-style-qformat:yes;&lt;br /&gt;	mso-style-parent:&quot;&quot;;&lt;br /&gt;	margin-top:0cm;&lt;br /&gt;	margin-right:0cm;&lt;br /&gt;	margin-bottom:10.0pt;&lt;br /&gt;	margin-left:0cm;&lt;br /&gt;	line-height:115%;&lt;br /&gt;	mso-pagination:widow-orphan;&lt;br /&gt;	font-size:11.0pt;&lt;br /&gt;	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;&lt;br /&gt;	mso-ascii-font-family:calibri;&lt;br /&gt;	mso-ascii-theme-font:minor-latin;&lt;br /&gt;	mso-fareast-font-family:calibri;&lt;br /&gt;	mso-fareast-theme-font:minor-latin;&lt;br /&gt;	mso-hansi-font-family:calibri;&lt;br /&gt;	mso-hansi-theme-font:minor-latin;&lt;br /&gt;	mso-bidi-font-family:&quot;Times New Roman&quot;;&lt;br /&gt;	mso-bidi-theme-font:minor-bidi;&lt;br /&gt;	mso-fareast-language:en-us;}&lt;br /&gt;.msochpdefault&lt;br /&gt;	{mso-style-type:export-only;&lt;br /&gt;	mso-default-props:yes;&lt;br /&gt;	font-size:10.0pt;&lt;br /&gt;	mso-ansi-font-size:10.0pt;&lt;br /&gt;	mso-bidi-font-size:10.0pt;&lt;br /&gt;	mso-ascii-font-family:calibri;&lt;br /&gt;	mso-ascii-theme-font:minor-latin;&lt;br /&gt;	mso-fareast-font-family:calibri;&lt;br /&gt;	mso-fareast-theme-font:minor-latin;&lt;br /&gt;	mso-hansi-font-family:calibri;&lt;br /&gt;	mso-hansi-theme-font:minor-latin;&lt;br /&gt;	mso-bidi-font-family:&quot;Times New Roman&quot;;&lt;br /&gt;	mso-bidi-theme-font:minor-bidi;&lt;br /&gt;	mso-fareast-language:en-us;}&lt;br /&gt;@page section1&lt;br /&gt;	{size:612.0pt 792.0pt;&lt;br /&gt;	margin:70.85pt 3.0cm 70.85pt 3.0cm;&lt;br /&gt;	mso-header-margin:36.0pt;&lt;br /&gt;	mso-footer-margin:36.0pt;&lt;br /&gt;	mso-paper-source:0;}&lt;br /&gt;div.section1&lt;br /&gt;	{page:section1;}&lt;br /&gt;--&gt;&lt;br /&gt;&lt;/style&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4c3a60c1-dde5-4e83-b389-4f93c87b9198&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; crdate&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;type&lt;/span&gt; &lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; crdate &lt;span style=&quot;color:#808080&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;2010-05-01&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; crdate &lt;span style=&quot;color:#0000ff&quot;&gt;desc&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;Retorna todos os objetos criados no banco de dados a partir de 01 de maio de 2010.&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3c5a3304-be5f-4c12-9700-d6555eec603d&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;type&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;P&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;TR&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;FN&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; crdate &lt;span style=&quot;color:#0000ff&quot;&gt;desc&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;?XML:NAMESPACE PREFIX = O /&gt;&lt;o:p&gt;Retorna o nome dos procedimentos (P), triggers (TR) e functions (FN).&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;o:p&gt;&lt;br&gt;Estas pesquisas na tabela SYSOBJECTS são muito úteis, por exemplo, para buscar todos os procedimentos criados a partir de uma determinada data, ou relacionar rotinas por nome, etc. Existe ainda (somente a partir da versão 2005 do SQL), a tabela SYS.OBJECTS, que funciona como uma extensão da tabela SYSOBJECTS (relaciona pela coluna ID), porém possui uma coluna que é muito útil para desenvolvedores, a coluna MODIFY_DATE. Esta coluna armazena a data da última alteração de um objeto.&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;o:p&gt;Imagine a seguinte situação, você trabalha 5 dias corrigindo em uma base teste dezenas de procedimentos. Você não precisa mais ficar anotando qual rotina alterou para criar o script no final, basta buscar da tabela sys.objects os objetos onde o modify_date seja maior ou igual ao dia que começou a trabalhar… bacana não é?&lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;o:p&gt;&lt;br&gt;Os tipos conhecidos mais comuns de objetos na tabela (coluna type) são:&lt;/p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;ul&gt; &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;U&amp;nbsp; - TABLE (tabela)&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;F&amp;nbsp; - FOREIGN KEY (chaves estrangeiras)&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;C&amp;nbsp; - CHECK CONSTRAINT&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;D&amp;nbsp; - DEFAULT&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;P&amp;nbsp; - STORED PROCEDURE&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;V&amp;nbsp; - VIEW&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;TR – TRIGGER&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;TF - TABLE FUNCTION&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;FN - USER DEFINED FUNCTION&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;S&amp;nbsp; - SYSTEM TABLE&lt;/font&gt;&lt;/span&gt;  &lt;li&gt;&lt;span style=&quot;line-height: 115%; mso-bidi-font-size: 10.0pt&quot;&gt;&lt;font size=&quot;3&quot; face=&quot;Courier New&quot;&gt;K&amp;nbsp; - PRIMARY KEY (chave primária) &lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br&gt;A tabela sysobjects também pode ser utilizada em conjunto com outras tabelas de sistema, para outros tipos de pesquisa no banco de dados. Vamos conhecer agora a tabela SYSCOLUMNS.  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;br&gt;SYSCOLUMNS&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;Esta tabela armazena armazena as colunas de tabelas, parametros de entrada de procedimentos, e assim por diante. Toda vez que é criada uma nova tabela ou procedimento no sistema, o SQL grava nesta tabela informações preciosas, que podemos utilizar a qualquer momento. As colunas que mais vamos utilizar neste exemplo são:&lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;569&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;119&quot;&gt;ID&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;448&quot;&gt;é a identificação do objeto a quem pertence estas colunas [ syscolumns.id = sysobjects.id ]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;119&quot;&gt;xtype&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;448&quot;&gt;determina o tipo de coluna (inteiro, decimal, char, varchar, bit, etc). O tipo é um código, encontrado em systypes [ syscolumns.xtype = systypes.xtype ]&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;119&quot;&gt;length&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;448&quot;&gt;tamanho do campo (no caso char, varchar terá o tamanho específico). &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;119&quot;&gt;xprec &amp;amp; xscale&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;448&quot;&gt;especifico para tipos decimais, informando a quantidade total de dígitos com decimais (xprec), e a quantidade de decimais (xscale)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;119&quot;&gt;allownulls&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;448&quot;&gt;valor bit (0/1) que informa se a coluna aceita valores nulos ou não.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;119&quot;&gt;collation&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;448&quot;&gt;Especifica o COLLATION da coluna (para tipos texto). Isto é necessário para solucionar problemas de conflitos de bancos de dados de diferentes idiomas.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;br&gt;A partir desta tabela, é possível ler qualquer estrutura do banco de dados. Qual a utilidade disso? Como uma pequena demonstração do que podemos fazer com a tabela SYSCOLUMNS, vamos criar um procedimento de apoio (?). Bom, um procedimento de apoio é um código feito para gerar código. É isto mesmo!&lt;/p&gt; &lt;p&gt;Vamos exemplificar.&lt;/p&gt; &lt;p&gt;Temos uma tabela chamada NotaItemLote (tabela onde são gravados os números de lote dos itens de uma nota fiscal). Você está criando uma rotina que irá inserir dados nesta tabela (gerando uma nota fiscal). Conhecendo a dinâmica de bancos de dados, quando construo uma query de insert, eu sempre especifico o nome dos campos da tabela que estou inserindo dados:&lt;/p&gt; &lt;p&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fede5e1e-aa3c-4f2f-b92b-d51f41f05271&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; tabela&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;coluna1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; coluna2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; coluna3&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 2&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 3 &lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt;Isto garante que no caso de uma eventual atualização no sistema, se forem adicionadas colunas novas nesta tabela que aceitem nulo, minha rotina ficará estável e não dará erros. Se você não especifica o nome das colunas no insert, ao alterar a estrutura da tabela, todas as rotinas que geram insert sem especificar o nome darão erro. Isto é padronização básica da básica.&lt;/p&gt; &lt;p&gt;Pois bem, como vamos gerar um insert então? Muito simples! Altere o nome da tabela para uma que exista no seu banco de dados, e veja o resultado do select abaixo (utilizando syscolumns)&lt;br&gt;&lt;br&gt;&lt;span style=&quot;line-height: 115%; font-family: &#39;Courier New&#39;; font-size: 10pt&quot;&gt;&lt;span class=&quot;SpellE&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5b09befb-5fe1-4ab6-8cb8-1e32404c1fad&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;syscolumns&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;name &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;syscolumns&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;syscolumns&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;id &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;id&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#808080&quot;&gt;and&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;name &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;NotaItemLote&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;syscolumns&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;.&lt;/span&gt;colorder&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;span style=&quot;line-height: 115%; font-family: &#39;Courier New&#39;; font-size: 10pt&quot;&gt;&lt;span class=&quot;SpellE&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;span class=&quot;SpellE&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVBhnMfAavUyKkCNaao_4a28bvjf17EeFVNdTfUsA0bKvfjn-ga8llI1bJXslN8AxUjN3PS0x6gW3r3FwwpT9mYYlM0Ox9znWOPgN2dJaqEjIhxb1-sBi9e0GSHIkCdQiNi37XrqNnDmK4/s1600-h/image%5B11%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrYMKcaB4ZJAzYzG0sgkSiW40HCEG_ZKVJOcyYOTMfJgoKPBmrfspjN7lIM0rQx1kmZijP1MX1OzcdiUJVO9etz1TtJMg-ajXfeeDccdf1Ag3BWnkz5ZIYp50lN9sO64tPi0egGcBiMtZn/?imgmax=800&quot; width=&quot;263&quot; height=&quot;177&quot;&gt;&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;mso-ansi-language: en-us&quot; lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;A query irá retornar o nome das colunas da tabela, em sequência, e ainda colocando uma virgula ao nome do lado, para facilitar. Aí basta copiar, colar e montar a sua query de insert&lt;br&gt;&lt;span class=&quot;GramE&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us&quot; lang=&quot;EN-US&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1f4a4ed5-c9f0-46b5-9b5e-f62f71de493c&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; NotaItemLote&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cd_empresa&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_serie&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_nota&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; cd_item&lt;/li&gt; &lt;li&gt;                        &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_lote&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; dt_validade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_lote&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; sinal&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;...&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt;Então vamos melhorar mais ainda, e facilitar a utilização deste procedimento, pois não teria sentido digitar uma query como essa toda vez que quisesse pegar as colunas de uma tabela. Então vamos criar um procedimento chamado sp_gerainsert. Segue o código dele abaixo:&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:d5ec4caa-5b59-463e-9fc5-9d126e53d321&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;proc&lt;/span&gt; sp_gerainsert&lt;/li&gt; &lt;li&gt;  @objname &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;sysname&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;, &amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;syscolumns&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; id &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;object_id&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@objname&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;   &lt;span style=&quot;color:#0000ff&quot;&gt;order&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;by&lt;/span&gt; colorder&lt;/li&gt; &lt;li&gt;     &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;&lt;font color=&quot;#ff0000&quot;&gt;*A função object_id retorna o ID do objeto passado como parâmetro (o mesmo ID da tabela sysobjects).&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;/em&gt;&lt;br&gt;Após compilar o procedimento, vá até o menu TOOLS (ferramentas), OPTIONS (opções). Selecione KEYBOARD, e insira a função que criamos no atalho CTRL+5 (pode vincular em qualquer atalho que desejar):&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHlLYn1TNnug0l0OBh1CgSYWrEINBkhRgiK5ZYZyH5Cwpd0WPSqB5PyqU0yeEvfjqLTzOcqgcKppcmd2aZwtfsAdGIyoSi4A7Lf3Kl1oDgeDYKxqT3JvtvKtgn7BS7TDevBFaIoovtSOsv/s1600-h/image%5B15%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC2kIW9hBlhteACGFWroM7V3hijI5CG9-M98tNXcO4TeWq24VqTVADrNMeAfCKj2urr2De9f-FjT0KcuEySmM53vZbxjjKsTBLfIxu-0eeP1A4rEUidkTXIHTTXlwJZPwsuFSarnPj8dYa/?imgmax=800&quot; width=&quot;753&quot; height=&quot;436&quot;&gt;&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;Agora, toda vez que for criar uma query de insert em uma tabela, basta selecionar o nome da tabela na janela de query, e pressionar CTRL+5 (ou o atalho que tenha especificado):&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMJ51C1-LOcHHc_mi0FSSLApcNGdn7SNSHNRvM8bU-5w8jkhWau45_UNbMdBU7GmmeIFHpgu_JV7gCiVJQnklZx_td26HRuolTT6ZkwIN3KmL4jv425sWVBEwzeiFCECk1xICd9uuYLNxj/s1600-h/image%5B19%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtu2n1CQy2zA-wO_lnhmxslzVXujFqn6Z0nUUd3JzV5LFv1btSzFUlrncwDR7EbyVglmgvDNE_Y8HkViDUzS0rQIZNgoZ0_NCC5J-LhvdABezxBkxK7OFOLaUORv7JgLsc5hNzdt64pHgu/?imgmax=800&quot; width=&quot;804&quot; height=&quot;555&quot;&gt;&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;&lt;br&gt;SYSCOMMENTS&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;A tabela syscomments é onde ficam armazenados todos os textos de procedimentos, triggers, funções, etc. Quando você executa um CREATE PROCEDURE, por exemplo, é nesta tabela que fica armazenado todo o código da procedure que compilou.&lt;/p&gt; &lt;p&gt;Vamos então para a parte prática. Digamos que você esteja fazendo uma atualização no seu banco de dados. Uma tabela de uso frequente recebeu uma nova coluna, e esta coluna não aceita valores nulos. Isto significa que você precisa revisar todos os procedimentos que &lt;strong&gt;inserem&lt;/strong&gt; dados nesta tabela, correto? Para entender a forma como vamos procurar isso na tabela syscomments, vamos primeiro analisar uma query de insert:&lt;br&gt;&lt;br&gt;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e05c7c85-9e35-4a9f-a5aa-f08fb5842280&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;insert&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;into&lt;/span&gt; NotaItemLote&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;cd_empresa&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_serie&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_nota&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; nr_lote&lt;/li&gt; &lt;li&gt;                        &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; dt_validade&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; qt_lote&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; sinal&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; 1&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;NFF&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 1525&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;A0001&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;2010-12-31&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; 10.0 &lt;span style=&quot;color:#808080&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;E&amp;#39;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;     &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; mso-ansi-language: en-us&quot; lang=&quot;EN-US&quot;&gt;&lt;span class=&quot;GramE&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; color: blue; font-size: 10pt; mso-ansi-language: en-us&quot; lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;color: red&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;Muito bem, o que precisamos fazer então, é localizar todos os procedimentos, triggers ou funções que contenham o seguinte texto: “insert into NotaItemLote”. Vamos então montar a query de busca na syscomments da seguinte forma:&lt;br&gt;&lt;br&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:faddeb86-2fd3-4787-8c34-dc587b56cfc6&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name&lt;/li&gt; &lt;li&gt;  &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;sysobjects&lt;/span&gt;&lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; id &lt;span style=&quot;color:#808080&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; name&lt;/li&gt; &lt;li&gt;                &lt;span style=&quot;color:#0000ff&quot;&gt;from&lt;/span&gt; &lt;span style=&quot;color:#008000&quot;&gt;syscomments&lt;/span&gt;&lt;/li&gt; &lt;li&gt;               &lt;span style=&quot;color:#0000ff&quot;&gt;where&lt;/span&gt; &lt;span style=&quot;color:#0000ff&quot;&gt;text&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;like&lt;/span&gt; &lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;%into notaitemlote%&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;                    &lt;/li&gt; &lt;li&gt; &lt;span style=&quot;color:#008000&quot;&gt;--&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;br&gt;O resultado da query é o nome de todos os procedimentos que contenham este texto “into notaitemlote”. Quem está acostumado com atualizações em bancos de dados que contém procedimentos, conhece bem esta rotina.&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7qyxNvQHggK6jeedfjRBtjAeHmf7lkYYmimblEGhyp1bYqYudMyz0boFfa87fQ0nCzsOznIvDFUKJrwzuXUW6nwZx8kmpXpPilwBtfhkVK7jT6u6a3Q-pNj_ftWhXeIaAWJRYUvEgqgII/s1600-h/image%5B26%5D.png&quot;&gt;&lt;br&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdC-1YDYIHY6Nn8zy-lkXc9n524zVnBXS78HK3NG4vKxvpTs5cb4RHwEKnz6yEfQUgzse5QRgQzr1IwCPy_3EInIt6vYaLnaw782irpAhuquY1H1SjdnYvWNeyiV8-f1k6Hm5P5KBsotWS/?imgmax=800&quot; width=&quot;804&quot; height=&quot;555&quot;&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;Estas dicas, aplicadas no dia-a-dia, garantem muito mais produtividade ao programador, pois não precisa ficar digitando nome de colunas, localiza os objetos alterados no sistema, etc. É muito mais controle sobre os objetos para o programador. E pode ter certeza, utilizar estes indicadores (como data de criação, data de alteração da rotina, etc) garantem muito mais precisão do que documentação manual.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH0kFg4k4pdm2puigHigsjW7PKIBjR-rPH_-PBEZIEwStltvrh-s68CLjs7MBXXGX178drpEnMotVSiQ-JbDI80kwENLzzAKRfV0lhWLQiB6EdAwcOLeQ3NujWr-LXnM4yz_a4n_GZ1N0d/s1600-h/HAPPY%20DESTROY%5B7%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HAPPY DESTROY&quot; border=&quot;0&quot; alt=&quot;HAPPY DESTROY&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2Qrxa4L-D9OLlJJfJSN4Ebb_QZM5SHgLU109AvBzGMsrLDbozzg27UVnalBMsZH9rgyb44PeVytgPi5DS0ioWVPeW-KQnnAHRyM1U0MK4jkTynv2snulK3EKmBB3alxSJsZd78pWPV2SC/?imgmax=800&quot; width=&quot;32&quot; height=&quot;32&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;ca-pub-3972945704402371&quot;;&lt;br /&gt;/* SQLBurger_ad_botton */&lt;br /&gt;google_ad_slot = &quot;2137613044&quot;;&lt;br /&gt;google_ad_width = 728;&lt;br /&gt;google_ad_height = 90;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/7004017892371845115/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/11/sysobjects-sysobjects-syscolumns-e.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/7004017892371845115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/7004017892371845115'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/11/sysobjects-sysobjects-syscolumns-e.html' title='sysobjects, sys.objects, syscolumns e syscomments'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrYMKcaB4ZJAzYzG0sgkSiW40HCEG_ZKVJOcyYOTMfJgoKPBmrfspjN7lIM0rQx1kmZijP1MX1OzcdiUJVO9etz1TtJMg-ajXfeeDccdf1Ag3BWnkz5ZIYp50lN9sO64tPi0egGcBiMtZn/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-5631121180503538564</id><published>2010-11-24T23:14:00.001-02:00</published><updated>2010-11-30T23:04:05.367-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Projetos"/><title type='text'>Você já está coletando?</title><content type='html'>&lt;h2 align=&quot;justify&quot;&gt;Soluções portáteis de baixo custo agregam alto valor operacional.&lt;/h2&gt; &lt;p align=&quot;justify&quot;&gt;Gostaria de compartilhar um de meus projetos recentemente implementado. O case é da empresa Inovadoor Portas Industrias Ltda, localizada em Curitiba/PR. O objetivo do projeto era melhorar a operação do almoxarifado e da produção no sistema. O usuário perdia muito tempo sentando na frente do computador para pagar cada uma das dezenas de requisições que recebia diariamente.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Diante de centenas de diferentes itens, diferentes códigos e embalagens, o procedimento de controle de estoque também era complexo, exigia um profissional especializado para manter as informações em dia.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Nosso projeto foi dividido em duas partes importantes:&lt;/p&gt; &lt;h4&gt;&lt;/h4&gt; &lt;h2&gt;&amp;nbsp;&lt;/h2&gt; &lt;h2&gt;Identificação do estoque&lt;/h2&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOMZSLzz0Kvsg_4O8bjESJXt8lV7q8Lz2p4N7uT2V3tshluDQmv6LrDxTUpskAV-A2grBM_TSffkTljBETsrnc0GPGHkYLAyEn8ZAWzVMPdIOlXvA_XvtkrRDikaUb91yzElDmClteKHzr/s1600-h/argox%5B5%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;argox&quot; border=&quot;0&quot; alt=&quot;argox&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixK_P_c0ZrlCZFepehx_krNIHti-Q0B8qVXCm3Fx7u3yoTA-XW4n19tgux-GyLnzUqv6dikUoifTlgU0Dd-6PcsXWvo6Y2F5GIW340oApvaA3AIGFW9xg2S8Bi8fZKyMil7dRbHqujzpNj/?imgmax=800&quot; width=&quot;160&quot; height=&quot;157&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;O primeiro passo foi adquirir uma impressora térmica para emissão de etiquetas. &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;A &lt;strong&gt;impressora de etiquetas&lt;/strong&gt; (modelo utilizado: &lt;strong&gt;Argox&lt;/strong&gt; OS-214 Plus) funciona através de transferência térmica para produção de &lt;strong&gt;etiquetas&lt;/strong&gt; com textos, logotipos e&lt;strong&gt; código de barras&lt;/strong&gt;. Uma solução ideal de baixo custo para pequenas e médias tiragens, utilizando mínimo espaço. Possui um sistema completo de gerenciamento de memória que permite o armazenamento controlado de formatos de &lt;strong&gt;etiquetas&lt;/strong&gt;, gráficos e fontes. Além disso, tem incorporado uma poderosa linguagem de comandos para geração e controle dos formatos (PPLA).&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Utilizando Visual Studio 2008, desenvolvi uma aplicação em Visual Basic que busca do banco de dados (no caso MS SQL Server) os itens, descrição, unidade, entre outras informações, para serem estampadas nas etiquetas. Desta forma, o almoxarifado foi totalmente identificado. O código de barras escolhido foi CODE 39, pois os códigos de itens são alfanuméricos (00.000.000). &lt;br&gt;&lt;br&gt;&lt;em&gt;Custo aproximado: R$ 800,00 impressora + ribbon + etiqueta (preferencialmente com customização de logo)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTjsuWqdugvIZ0g3Xv0GrqU11vcJLsy4wqYOgjBC1S2Bn4YXZ6NcYG3TWmnZHyzAikBchgfcJh6759SlHTuZyIJUIY1N9-v7TghrWQ1qLeHjr_86yrwLYeGb2xmGOldhrSWMV67rqw434q/s1600-h/14042010227%5B8%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;14042010227&quot; border=&quot;0&quot; alt=&quot;14042010227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQJKRydXO5zUqmeG2aZqWFXFwlSqwAEVXIQdvVcR_JqSKEj2__CmkLvaDrKy6Bmkz3-Dx7Vw8ZJyHBgQ0frIAkFvZ3iTl8Wx1Q36_gfdcBtfdshQrBeWCIR6BlZWexF8yARrxOouS_pH4Z/?imgmax=800&quot; width=&quot;244&quot; height=&quot;184&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBYbKHv5LqhmMPJl8hhoPhg2L0YyDSdsZY9HwM8AuupawJiJE5Lg_NwQTlts2ZWk2dBrIqtQYfbdToSMztxZQcHMVi0QvxtWKDubWojTfF2b5x0VQYQv8ill2jBuE9bYTkQaclrzY_0TjY/s1600-h/14042010228%5B15%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;14042010228&quot; border=&quot;0&quot; alt=&quot;14042010228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRKpXATqP-NpwMRXpoI_Vxdqz09bMAi1Xpv0sGnyHeDii5wuBgIhLXDAcMfvjSFqsJRmgJbfJXCt-DDeIHj7C5CzAZi9zlXZC5qaGtuszdDb2j_qVkjh-Ny6zeNofl-0y_S37aLAI_AsBL/?imgmax=800&quot; width=&quot;244&quot; height=&quot;184&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Coletor de dados Argox PT-60 &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj77WpsDQx07IBv-h_sIKkEIAaJRe7I4RmmYba3UDESy7Vi789rA1ILyP2CeHzUjO_q23LinhRhwtf4DcDjQfGq8XKcfac6f6ckJURmC9UPqOvaz5UqIH_QJelHTd8zF4TEWBYrwEA0GO6A/s1600-h/image%5B18%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-iSypmePWFi36PmaBCwBQME8YiUZT6N-18YqMuv7ZdRTwe6Pe2SokVENrsoY29C2J5ptmpyZUjkVCJ0CZ7JO_tlqHKVU3e1m1f5TNN1sy2vVTvz-G7X9bzh0Azf4YBvxnSiM3hRNCTrY-/?imgmax=800&quot; width=&quot;169&quot; height=&quot;169&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Buscando uma solução de baixo custo, porém que atendesse a todas as necessidades do projeto, chegamos ao Argox PT-60. &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;O coletor de dados &lt;b&gt;PT-60&lt;/b&gt; possui o sistema operacional Windows CE 5.0. Suas características são er gonomia, display colorido de 2.4 polegadas TFT QVGA 320 x 240 display com touch screen, alto desempenho para leitura de código de barras (leitor CCD), comunicação sem fio tais como Bluetooth e a tecnologia 802.11 b/g, interface USB e RS-232(serial). Possui slot para cartão SD para expansão de memória.Leve, pequeno e resistente, possui como opcional o pistol grip, para maior facilidade de manuseio. &lt;br&gt;&lt;em&gt;&lt;br&gt;Custo aproximado: R$ 2.900,00 (com pistol grip + bateria auxiliar)&lt;/em&gt;&lt;/p&gt; &lt;h5&gt;&lt;font size=&quot;1&quot;&gt;Características&lt;/font&gt;&lt;/h5&gt;&lt;font size=&quot;1&quot;&gt;&lt;b&gt;Potência&lt;/b&gt;&lt;br&gt;Bateria: recarregável padrão 3.7V 1950mAh Li-ion - recarregável com Pistol Grip: 3.7V 4400mAh Li-ion&lt;br&gt;Autonomia: 8 horas com bateria padrão e 12 horas com bateria do Pistol Grip.&lt;br&gt;Retenção de Dados: Após removida a bateria, os dados são armazenados por 15 minutos.&lt;br&gt;&lt;b&gt;Dimensões&lt;/b&gt;&lt;br&gt;Medidas: 169 mm (L) x 70.1 mm (W) x 34 mm (H)&lt;br&gt;Peso: 250g (com baterias)&lt;br&gt;&lt;b&gt;Especificações Gerais&lt;/b&gt;&lt;br&gt;Velocidade de Leitura: 400 scanners/segundos&lt;br&gt;Distância de Leitura: 600mm (code 39, 20 mils, PCS 90%)&lt;br&gt;Sistema de Leitura: 2048 scanners pixels&lt;br&gt;CPU: ARM9 Core 266MHz&lt;br&gt;Memória: 128Mb de Flash ROM, 128Mb DDRAM&lt;br&gt;Tela: 2.4 polegadas LCD TFT, 320 x 240 QVGA com touch screen&lt;br&gt;Teclado de Borracha: 29 Teclas (Numérico)&lt;br&gt;Ângulo do Leitor: 0° a 45° graus&lt;br&gt;&lt;b&gt;Alarmes&lt;/b&gt;&lt;br&gt;Indicador por Beep: Programável nas freqüências de 1KHz a 4KHz&lt;br&gt;Indicador com LED: Azul, verde e vermelho&lt;br&gt;Fonte de Luz: Visível operando em 670±15 nm&lt;br&gt;&lt;b&gt;Ambiente&lt;/b&gt;&lt;br&gt;Temperatura de Operação: -10ºC a 60º C&lt;br&gt;Temperatura de Armazenagem: -20º C a 70º C&lt;br&gt;Indice de Proteção: IP54 (imunidade contra poeira e contra respingos, projeções d´água e jatos leve d´água)&lt;br&gt;Umidade: 5% a 95% (sem condensação)&lt;br&gt;Resistência a Queda: 1.20 m de queda livre sobre concreto&lt;br&gt;Regulamentação de Emissão Eletromagnética: FCC, CE, BSMI, CCC&lt;br&gt;&lt;b&gt;Comunicação&lt;/b&gt;&lt;br&gt;Interface RS-232: Taxa de até 115.2k bps&lt;br&gt;Interface IrDA: Compatível com Standard 1.0, até 115.2k bps - High Speed IR Taxa de transmissão até 115.2k bps&lt;br&gt;&lt;b&gt;Programação&lt;/b&gt;&lt;br&gt;Linguagem: embedded Visual C++ 4.0, Visual Studio.NET, Visual Studio 2005, Windows CE SDK Scanner Configuration Utility&lt;br&gt;&lt;b&gt;Acessórios&lt;/b&gt;&lt;br&gt;Inclusos: Bateria 1950mAh, Cabo Carga &amp;amp; Comunicação USB, Fonte de Alimentação, Caneta Stylus, Alça de mão &lt;/font&gt; &lt;h5&gt;&lt;font size=&quot;1&quot;&gt;Garantia 12 Meses&amp;nbsp; &lt;/font&gt;&lt;/h5&gt; &lt;p&gt;&lt;font size=&quot;1&quot;&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;1&quot;&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;*fonte &lt;a href=&quot;http://www.hardstand.com.br&quot;&gt;www.hardstand.com.br&lt;/a&gt; (&lt;a title=&quot;http://www.hardstand.com.br/coletor-de-dados-argox-pt60.htm&quot; href=&quot;http://www.hardstand.com.br/coletor-de-dados-argox-pt60.htm&quot;&gt;http://www.hardstand.com.br/coletor-de-dados-argox-pt60.htm&lt;/a&gt;)&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;strong&gt;&amp;nbsp; FOTOS DO EQUIPAMENTO&lt;/strong&gt;  &lt;h5 align=&quot;center&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhouCelphXiHREQKYzSw8ZxwLWbyPPm9VduxFH6sOQdHoI1rkh4xEspcbEkPKVlj20rqLp-QehVPdEHqmkUz1gFM20gtw5Qlvhb-H4rRLeng1aWOWBKv_o7CL0j7Qa9LAjO1zuLeey8Dbwn/s1600-h/24112010217%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24112010217&quot; border=&quot;0&quot; alt=&quot;24112010217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRGqgRsF2i_A1_H7qfnNDQ-XfqPKG64DxdFH0yAIroLWz7BiEzkR0bfJpDPRmlCngkq39fGgmgr_DYHZqiA9O3NCo3v-BJR3gX-YfxdVT4-1rbpxD87_WJ6vj_zL5sYWaFBv1LwF2iXnSa/?imgmax=800&quot; width=&quot;246&quot; height=&quot;186&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCt7O8ongw3_RmfzFpQ6tRL2bNk3govUb4GtxR96CDb5a9z97f0w_BfOspw05t64K4WzXSCO7eajbOBZilop8Rj-htES0dp-Hae9vGSHJlUEs2ujhNvPWk_EyZXXTXUf0smfgpuT9NEdCx/s1600-h/24112010220%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24112010220&quot; border=&quot;0&quot; alt=&quot;24112010220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhroK48iB7HhDGTAtjevH1Tks3fQTM8LfIpsibawmAcc504EEFGmbuf2P5WLzqv4utlT1h1zqEUAslVyc0YlRPMbtskD0Ts8RqkLpkh2d61HvjhP2w2A0gWRRSZU1ylQl_S-8ppxwah4l1/?imgmax=800&quot; width=&quot;246&quot; height=&quot;186&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzW_y4UX6C0j6HWZBEd0ND5r0VqO6fTa-zyO4zZp9fbMzG5vKnMyd48Px1aDHZonsyQRQlf0jOiiiiGITthE1hzBIjUldRoN4QyuEI3414cM7YZfGmpV2HjEG06H_oPKTV3nke5j-S2WrY/s1600-h/24112010221%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24112010221&quot; border=&quot;0&quot; alt=&quot;24112010221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Xx25yCs8Q55JSMhkdpYHS8kadL95A9M-FkhaSrt2OJ_OmFo_E83qt-LCNvSZYtU0NsL7s4RGqjPZiazjj60DuWSgVmdSBfMtXbOpS6dr5FoFJMB5-bhzFzF1M25ziprfMhihqtIxFyau/?imgmax=800&quot; width=&quot;246&quot; height=&quot;186&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOSmQZ90gjSEfkyvWNeehNVS5Ehi-z-U35RTEoumm3qJtj2e5KsgSW_KvnEwnFMtiRqvql48oyXDnDoYg9seKk8uwzboSJVlTLZpzJHcSMGEK60Y893R6ICpHyBXeLO3tg8yxhKNEF5La/s1600-h/24112010216%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;24112010216&quot; border=&quot;0&quot; alt=&quot;24112010216&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFxIpWW-UJElYiuSUdJ7erSAMLgUDJgXdGd6cu5VB0dKLua7vxTr23Avnqs7ANhRnAFNdV2z-4_55Ksnt9BnoIG08EnF_syh0zxsiLCoy_3HsAQVOvOAS5INlJRrWcLVg5sbV3AjbSTec2/?imgmax=800&quot; width=&quot;246&quot; height=&quot;186&quot;&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;/h5&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;em&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVmS7UTSgHebqDycCy3lWrTqDj6JpHaNkoEwTWWn6dUUAxmT1_QF2F5pEhXpUWIUDe7HQ6AOd3BI8zml1mtKdp54qjdoJvG86yIa9HKZPqOAyPVdn6_XqwH5VM5IUYF_Ztod1HBndeJ_CL/s1600-h/image%5B17%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijMyUbCS3B4KcO4ZtxMi_LHbb1Rh0vwcs8LYrmAMU0E3MTESeqNSTEOca4j1nYsYtksf3ZVI-7JyfgmzvAHbHIwq0ru_pxHHUD_16hPEfKS36PcsOofYSTkalnaEcKOwXoEf7lVJcVhMVQ/?imgmax=800&quot; width=&quot;156&quot; height=&quot;132&quot;&gt;&lt;/a&gt;&lt;/em&gt;Para a transmissão dos dados, foi adquirido um aparelho ROTEADOR WIRELESS DLINK DI-524 e instalada uma antena mais potente, de 12dbi, localizada bem na entrada do almoxarifado.O sinal de transmissão em todos os locais do almoxarifado é de sempre 80% a 100%. &lt;br&gt;&lt;br&gt;&lt;em&gt;Custo aproximado: R$ 100,00 roteador + R$ 50,00 antena.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;&amp;nbsp; &lt;h2&gt;Software do coletor&lt;br&gt;&lt;br&gt;&lt;/h2&gt; &lt;table border=&quot;0&quot; cellspacing=&quot;5&quot; cellpadding=&quot;5&quot; width=&quot;100%&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;290&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCYb6LrtF6DzcZHyqvB5Hbhc9j_lZKleVA82UqcFTN7XftpFub0XZs_tAQ1CnubJQieoKt7tcZlFI398-GcOuVx7nxfNZ-uSU_CftPedAMJo5OROV1abEQGzyVwMkefY_vo6QnqhiAyUL0/s1600-h/24112010222%5B1%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;24112010222&quot; border=&quot;0&quot; alt=&quot;24112010222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6LZEzM79vG0eHMA-hsdscJM-g1U-WPlDCICh6qRmAzVYflobDaGbwQKy3uIHUlfb4grMBqLKr4raNBEYRye0-CHrIETfGJyBobLreZGjyjWKjoKPo_3aWZg44FdmnsToPmPKWqsLxAofA/?imgmax=800&quot; width=&quot;290&quot; height=&quot;219&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh46ffrvSeXG4pTs5pqTT35R9SA8VENz1KdakeYOt6qgiVu5AhBkyBr2ew2f0U7ttCbK8od4tWOYCaEM-iHig6ctBPopFzWZK8K-1HbaMIDX5zldDpB64cObM4QtaqkkFune1d6PHfaL9PB/s1600-h/24112010225%5B1%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;24112010225&quot; border=&quot;0&quot; alt=&quot;24112010225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqNp8HT1Fc3XmUpFfY8i5GETBLHntZomxeotsmgyJq6GkeeDggFncMTrRcccl-7j75U5gzoOzB8jr9czOMRsU6LRP02bgVvm7BOzD0xG0Qmu61WIyuvJd9JS5RUD0j0eOcdhyphenhyphen76-FZdDCF/?imgmax=800&quot; width=&quot;290&quot; height=&quot;226&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ZmLG-dOABX4YMH97gB-RkvJgY8T9DG_T9emqsGrIZ87uELzPhY3CylBBCAi9gAEd3Tx30y4ZwaGa7AaUIrHjYti1tU53sRw9Rj_nw2XRj_Kqpenk2vbEpXgjqM6hu0iBllbfwCXw-8gt/s1600-h/24112010223%5B1%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;24112010223&quot; border=&quot;0&quot; alt=&quot;24112010223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLuHpVGTVWqJRRPvFbYKOOe-hPuq3R-OxxOQ7DuVTpPFhdBjKsntoXq7pO_fUtUHSseDwtuepFTFebz8VsyHImtNK6tBqt9BTP65GloMwQwwJG4zU3hBhss8DHEvrc-L8PPjyAjB-t9uWZ/?imgmax=800&quot; width=&quot;290&quot; height=&quot;220&quot;&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;742&quot;&gt; &lt;p&gt;Através do Microsoft Visual Studio 2008, desenvolvi o aplicativo para o coletor, contendo as seguintes operações:&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;Consumo&lt;/strong&gt;&lt;br&gt;Permite ao almoxarife dar baixa do estoque. Ao clicar a tecla 1 (ou pressionar a opção na tela touch screen), basta ler o código de barras do item, e informar a quantidade. A movimentação do estoque é realizada no banco de dados do sistema.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;Requisição&lt;/strong&gt;&lt;br&gt;Funciona exatamente como o apontamento de consumo, porém solicita o número da requisição de materiais no começo para vincular as baixas à respectiva ordem de produção.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;Ajuste&lt;/strong&gt;&lt;br&gt;Ferramenta que permite ao almoxarife realizar ajustes no estoque, como inventário. Com o coletor em mãos, realiza a contagem do material e já faz a entrada do saldo, utilizando o código de barras. &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;Compra&lt;/strong&gt;&lt;br&gt;Permite ao almoxarife solicitar a compra de qualquer material utilizando apenas o código de barras da etiqueta.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;Consulta&lt;/strong&gt;&lt;br&gt;Exibe na tela relatório de razão de estoque analítico do item, assim como saldos em depósitos alternativos, afim de analisar a disponibilidade do material.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Através destes 5 recursos, o almoxarifado é capaz de processar qualquer operação no sistema de gestão sem precisar se deslocar até o computador, assim como em qualquer lugar da fábrica pode consultar saldos, gerar pedido de compra, etc. O ganho operacional é gigantesco.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;font size=&quot;4&quot;&gt;Valor aproximado do projeto&lt;/font&gt;&lt;/p&gt; &lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;400&quot; bgcolor=&quot;#ffffff&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;strong&gt;Impressora térmica&lt;/strong&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt; &lt;p align=&quot;right&quot;&gt;+/- R$ 800,00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;strong&gt;Ribbon e etiquetas (50 rolos)&lt;/strong&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt; &lt;p align=&quot;right&quot;&gt;+/- R$ 200,00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;strong&gt;Coletor de dados Argox PT-60&lt;/strong&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt; &lt;p align=&quot;right&quot;&gt;+/- R$ 2.900,00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;strong&gt;Roteador D-Link DI-524&lt;/strong&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt; &lt;p align=&quot;right&quot;&gt;+/- R$ 100,00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;strong&gt;Antena 12dbi&lt;/strong&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt; &lt;p align=&quot;right&quot;&gt;+/- R$ 50,00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;strong&gt;&lt;em&gt;Total&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;200&quot;&gt; &lt;p align=&quot;right&quot;&gt;&lt;strong&gt;&lt;em&gt;+/- R$ 4.050,00&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;O projeto teve aproximadamente 30 dias de duração, e já está em pleno funcionamento. Agora estamos iniciando o trabalho de expansão, através da aquisição de mais equipamentos para redundância, e adição de novas funções, como controle de expedição, apontamentos da produção, etc.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/5631121180503538564/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/11/voce-ja-esta-coletando.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/5631121180503538564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/5631121180503538564'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/11/voce-ja-esta-coletando.html' title='Você já está coletando?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixK_P_c0ZrlCZFepehx_krNIHti-Q0B8qVXCm3Fx7u3yoTA-XW4n19tgux-GyLnzUqv6dikUoifTlgU0Dd-6PcsXWvo6Y2F5GIW340oApvaA3AIGFW9xg2S8Bi8fZKyMil7dRbHqujzpNj/s72-c?imgmax=800" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-4311444116598338318</id><published>2010-11-24T19:31:00.001-02:00</published><updated>2010-11-24T21:57:06.992-02:00</updated><title type='text'>Interpretando código SQL de forma eficiente (segmentada)</title><content type='html'>&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpjaFGE-__4FCedj1QtyL_TFIEOaeV3gNlGFH3MeJc53YfGVMY8qLlR00JJKGtFvNh1qMSUaJc-BnjophQAJvQS-21OZG3Lnr_BFqdbcmrLHrez65wkj_AztW3K5YyCzBLKEfNCrp-HVRr/s1600-h/image%5B11%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYti3a28MyQdCVTIWVAjzwsqtTejrcnWRcpPkfagOuGvbEVqNGZQoENOZPdyvk1yXlFH1Ab2xQvxFUHI7DqDnkznxCQuShc9MiVQCF8dNgceO8XV3Q49ofntCQFx1uxuD0LO5R5Ijtr0Zr/?imgmax=800&quot; width=&quot;230&quot; height=&quot;170&quot;&gt;&lt;/a&gt;Para este artigo, estou utilizando o Microsoft SQL Server 2008, porém se aplica a qualquer gerenciador de banco de dados.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Em muitos treinamentos que prestei, ou até mesmo acompanhando outros profissionais que ainda estão em estágio de aprendizado, percebo uma enorme dificuldade em conseguir enxergar realmente o que são todas aquelas pernas dentro de um único select. É left join pra cá, distinct pra lá, group em cima, e order em baixo. Existem select’s que chegam a ultrapassar páginas de código, para uma única consulta. E isso é muito comum, pois uma programação limpa no SQL consiste em não utilizar cursores, loops, tabelas temporárias, usando somente em casos muito específicos. O ideal é reduzir o custo das rotinas, reduzindo o número de operações no banco de dados.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;O exemplo que vamos estudar nesta publicação é um trecho de uma &lt;em&gt;Stored Procedure&lt;/em&gt; responsável por gerar o faturamento a partir de uma ordem de serviço (ADOOS). Este faturamento gera nota fiscal, títulos a receber, entre outras informações. De forma a minimizar o custo total da query, uni em um único select todos os dados necessários para executar este faturamento. Esta união resultou em um select que busca ao mesmo tempo, dados de 12 diferentes tabelas. O que vamos entender, é como fazer a interpretação de uma query extensa, utilizando a técnica de segmentação do código.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Vamos dar uma olhada no trecho do código:&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY94rJOXd8i0C0xdrye-iILSmSmoLrHzSIT1RZGZjMYHs3AfcYbpZ80ZFJIKpZFaQTCkFphTZHVWKgsk_fWhy3ngbziV_9sjgta1EDl9KS23SIQ_HL-vffhFoze3XrtrUuDUxKhZ1O2Jej/s1600-h/image%5B8%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqJKqCgUb5KJNZ-QrZupxwQ01sKFjqkD-P-X9FXaDUGX28RxjdTIes1WqOZjptnadBGjxXhGCwbaYw9PODtOPV0R7kcY93LYZPtZPtoEnOfKZkl4tIl_ax07Z9_GrsPlxnAu9QeS4eNfuw/?imgmax=800&quot; width=&quot;528&quot; height=&quot;1209&quot;&gt;&lt;/a&gt; &lt;/p&gt;&lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Esta é uma query de nível fácil a intermediário, pois todas as tabelas possuem relacionamento um para um. Veja que utilizei apelidos para as tabelas (cadastro – e, cidade – f, cidade – g), repeti as tabelas CADASTRO e CIDADE pois preciso dos dados de cadastro e estado tanto do cliente quanto da empresa.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;u&gt;Se para você, esta query é assustadora, então você está no post certo!&lt;/u&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;u&gt;&lt;/u&gt;&amp;nbsp;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Em primeiro lugar, e não sei por qual razão, a maioria dos programadores iniciantes NÃO LÊEM. É isso mesmo, não lêem o que está escrito na tela. Uma query exige uma leitura muito mais minuciosa que um texto, pois o SQL tem que ser exato, todos os laços devem ser fechados para que a query rode corretamente. É matemática, teoria dos conjuntos.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;O primeiro passo, é identificar cada tabela, os dados que serão extraídos dela e qual o seu relacionamento com as demais. &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQmcEulYKEcSBvxLsN9xyNyCO2PKZL8cDfPc7NK7EHAVT-b60y2jRgIumo5RZ-rDqQP-tozcmIIbpmH9Nhg5z4gVSP4w9sdHwjWytpK0MyO0gs_L1xIOpF1oEMfsCeEvTtoCU3jpjFPiH6/s1600-h/image26%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiktNkpA_cyi666ZTidbVPnYvVddAf5rBGKCbEeTxcs6vq1HRll2r7cUSmbt_YEO63fBB6bAMZZ_pxvquwj7jEEkGODRBssH-RtT29fKoRmM7WAE3cx9_SJVwYAIcGRmqbS9J-3LwBHj2OY/?imgmax=800&quot; width=&quot;351&quot; height=&quot;270&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;ADOOS – Quando esta rotina é chamada, recebe como parâmetro o número da ordem de serviço. A tabela ADOOS é onde ficam armazenadas todas as ordens de serviço, contendo data de abertura, cliente, tipo de ordem de serviço, etc. A chave primária desta tabela é EMPRESA, SÉRIE E NR_OS.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;ADOOSOutra – Tabela auxiliar à tabela principal, traz informações adicionais como programação de entrega, plano gerencial, centro de custo, etc. O seu relacionamento é de 1x1 (um registro em ADOOS para um registro em ADOOSOutra). Mesma chave primária que ADOOS.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;ADOOSEncerra – Assim como no exemplo acima, esta tabela também é 1x1, tendo a mesma chave primária que a ADOOS.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Cadastro (d) – contém os dados de cadastro do cliente, pois na tabela ADOOS somente é especificado o código.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Cadastro (e) – contém os dados da EMPRESA que emitiu a ordem de serviço, a tabela ADOOS se relaciona com esta tabela através da chave EMPRESA.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Cidade (f) – Tabela que será relacionada à tabela Cadastro (d), para buscar o código do estado (UF) do cliente.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Cidade (g) – Tabela que será relacionada à tabela Cadastro (e), para buscar o código do estado (UF) da empresa.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Condicaovenda (h) – Tabela que contém informações inerentes à condição de venda estabelecida na tabela ADOOS (coluna cd_condicaovenda).&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;As demais tabelas não precisamos colocar neste exemplo, já temos o suficiente. Bom, já identificamos o papel de cada tabela. Este trabalho pode ser realizado lendo a estrutura de cada tabela, fazendo consultas, consultar a estrutura no modo design, e assim por diante. Até aqui não tem segredo, certo?&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Depois que nós concluímos este levantamento, vamos então analisar todas as referencias na parte WHERE, onde estabelecemos os relacionamentos entre as tabelas:&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;ADOOS ~&amp;gt; É a tabela que nos serve de parametro, pois temos o número da ordem de serviço. É ela que receberá a comparação com os parâmetros recebidos pelo procedimento:&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaRW3iVlDQRBvQ9pYKpCx81gKLcIfRJ_vVWB3VejukNDSzYQzqIZmIq1hryqNAIHGab4L36klr-8kqZnWjAzsgsyHoxV3caffrwlMQ7abTTbAzE04nXh7FlaC_lC41VnhXN-mCVqPXCksf/s1600-h/image33.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ4eit3iTpyxWHw1e0F9PClmKblL0cAAypF9RFL7TXk4VAUyUnERumu8EBYi0UeysDL9uChp3kJcw7nkw1IFHSTFz2vUln8MHOlgV1CP8Qg5QUFtvaKnHXbq_mwVYMOoPBM6GUhtXBypD3/?imgmax=800&quot; width=&quot;343&quot; height=&quot;58&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;ADOOSOutra ~&amp;gt; Se relaciona com a tabela ADOOS através das chaves primárias. Já identificamos seu relacionamento.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTarZ0EiMHyp5V7jLsxgXJdoRODMOcfraeOgwGCTUowMLSZLHW76YWMhu3qRE1HO6I0XGvPlnBTH9sFnxVJ4K_RAq5FYCYXHG8L_MUFpPz5JJCxtLbK-q-xw9aXqiVn9MNVLcylhak6wu/s1600-h/image37.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbMKSZHdXNZjn-xYRxylpWzKfIPKny9JZSZb9Hc9uFMG5AQdwoHiLNZS8c9oo6hgb6SMqoZDig96KmfRgHk2iQLSr9usxZdXNyylMA7ty6wCIc02Gh8kQqMBgP3KBTApPJFDfKM_w-BuFc/?imgmax=800&quot; width=&quot;319&quot; height=&quot;58&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;ADOOSEncerra ~&amp;gt; mesmo caso da ADOOSOutra, relacionamento 1x1 através das chaves primárias.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtuHR8Xc9T-zhcvstnClNBgf5OyzoG40_Q8qSjNZTSFIDCEqYUS8DRg5kU-wEaLSdgpqxDrBOSbLlEYx8J6PwY8IOdZZ5qmeT6H83fJEQ2YRCTmWcNbaynBA2CYmoaquYzxxYVKQyJYXoT/s1600-h/image41.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6y74xEkUePA3HDuokvo4SMiARC7AFTAYpinmwW_dwfimRoViNCh9Zf90bxS_BDLjICI2h7gTuxX-s8gMVqqniGXFBS_gs4bU0hyYXFgxSvMznicCtNuikaMRi_Q5SPG2BJRqc8wu_zZ9p/?imgmax=800&quot; width=&quot;331&quot; height=&quot;56&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Tabelas de cadastro e respectivas cidades ~&amp;gt; veja que o código de cadastro da tabela A (ADOOS) é igual ao código de cadastro da tabela D (CADASTRO DO CLIENTE). O código da cidade F é igual ao código da cidade da tabela CADASTRO DO CLIENTE D. Também relacionamos o código da empresa que emitiu a OS com a tabela CADASTRO E, que também relaciona o seu respectivo código de cidade com a tabela CIDADE G.&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEUJmFhnPVRBMfc-XGMkXPjGH4vH7qGcSpi9gDADQhU86nXi_5fnfs8aPS_oAMhuSuXAp9U68M46RikDy2q4c8lvH5D-d-EL1Tod4fPj-im7aShgydjPcBKNETwY1T71EeCfwXbOVCzdAI/s1600-h/image45.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKN_y1Irut10X1T_PV0PTKUWuwdN94QwHJWRcS1Zyct7zdSSBZryL0pO1vkqiz-esug1oGzigPSYbW3BQ5BTp2CVQFXrpZ4vVJkXDdDB5bFsj82SpAfOxleYpjRCnM6ql1CE06QHeZNu6G/?imgmax=800&quot; width=&quot;323&quot; height=&quot;73&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;Leia atentamente o código. Nunca observe a query como um todo, leia de forma segmentada. Primeiro veja as tabelas, se concentre em entender qual o mapeamento de dados responsável por cada uma. Depois, identifique cada relacionamento entre as tabelas. Veja item por item, para identificar possíveis erros de JOIN (relacionamento). Mas é necessário que seja observado item por item. Importante lembrar para que sempre leia atentamente as mensagens de erro durante execuções no sql. Muitas vezes, ao executar um procedimento, o usuário vê a mensagem vermelha de erro, e imediatamente coloca na cabeça: deu erro, vou procurar… mas nunca lê a mensagem, que diz exatamente onde está o problema! Digo isso por que tive esta experiência com uma pessoa que está aprendendo nesta semana *-*&lt;/p&gt; &lt;p align=&quot;justify&quot;&gt;\o/&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/4311444116598338318/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/11/interpretando-codigo-sql-de-forma.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/4311444116598338318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/4311444116598338318'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/11/interpretando-codigo-sql-de-forma.html' title='Interpretando código SQL de forma eficiente (segmentada)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYti3a28MyQdCVTIWVAjzwsqtTejrcnWRcpPkfagOuGvbEVqNGZQoENOZPdyvk1yXlFH1Ab2xQvxFUHI7DqDnkznxCQuShc9MiVQCF8dNgceO8XV3Q49ofntCQFx1uxuD0LO5R5Ijtr0Zr/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7118970713551472781.post-1381631247209294607</id><published>2010-11-23T23:47:00.001-02:00</published><updated>2011-03-17T01:55:20.945-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Manipulação de string"/><category scheme="http://www.blogger.com/atom/ns#" term="Para programadores"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="T-SQL"/><title type='text'>O truque do zero à esquerda</title><content type='html'>&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1cd288e7-8bab-4fde-aa45-ca0b3102f189&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;Technorati Marcas: &lt;a href=&quot;http://technorati.com/tags/Microsoft+SQL+Server&quot; rel=&quot;tag&quot;&gt;Microsoft SQL Server&lt;/a&gt;,&lt;a href=&quot;http://technorati.com/tags/Programa%c3%a7%c3%a3o&quot; rel=&quot;tag&quot;&gt;Programa&amp;#231;&amp;#227;o&lt;/a&gt;,&lt;a href=&quot;http://technorati.com/tags/Development&quot; rel=&quot;tag&quot;&gt;Development&lt;/a&gt;,&lt;a href=&quot;http://technorati.com/tags/SQL&quot; rel=&quot;tag&quot;&gt;SQL&lt;/a&gt;,&lt;a href=&quot;http://technorati.com/tags/String&quot; rel=&quot;tag&quot;&gt;String&lt;/a&gt;,&lt;a href=&quot;http://technorati.com/tags/Rtrim&quot; rel=&quot;tag&quot;&gt;Rtrim&lt;/a&gt;,&lt;a href=&quot;http://technorati.com/tags/Right&quot; rel=&quot;tag&quot;&gt;Right&lt;/a&gt;&lt;/div&gt; &lt;p&gt;Olá caros sqlnautas. Este artigo é relacionado à T-SQL em Microsoft SQL Server. Este artigo é compatível com qualquer versão a partir do SQL Server 2000.&lt;/p&gt; &lt;p&gt;Existem algumas situações, em que precisamos concatenar zeros à esquerda de um número para transformar em string, geralmente necessário quando estamos fazendo layouts de arquivos de texto para exportação entre sistemas.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;O número 25 deve retornar como 00025, assim como o número 325 deve retornar 00325 (mesmo número de algarismos).&lt;/p&gt; &lt;p align=&quot;left&quot;&gt;Mas como resolver isso facilmente? Muito simples! &lt;/p&gt; &lt;p align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:75676991-5bce-434c-a8b0-f80d9fd11c3f&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt; &lt;div style=&quot;border: #000080 1px solid; color: #000; font-family: &#39;Courier New&#39;, Courier, Monospace; font-size: 10pt&quot;&gt; &lt;div style=&quot;background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px&quot;&gt;Code Snippet&lt;/div&gt; &lt;div style=&quot;background: #ddd; overflow: auto&quot;&gt; &lt;ol style=&quot;background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;&quot;&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @numero &lt;span style=&quot;color:#0000ff&quot;&gt;int&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;declare&lt;/span&gt; @texto &lt;span style=&quot;color:#0000ff&quot;&gt;varchar&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;100&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @numero &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; 23&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @texto &lt;span style=&quot;color:#808080&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;right(&lt;/span&gt;&lt;span style=&quot;color:#ff0000&quot;&gt;&amp;#39;00000&amp;#39;&lt;/span&gt; &lt;span style=&quot;color:#808080&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color:#ff00ff&quot;&gt;rtrim&lt;/span&gt;&lt;span style=&quot;color:#808080&quot;&gt;(&lt;/span&gt;@numero&lt;span style=&quot;color:#808080&quot;&gt;),&lt;/span&gt;5&lt;span style=&quot;color:#808080&quot;&gt;)&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style=&quot;color:#0000ff&quot;&gt;select&lt;/span&gt; @texto &lt;span style=&quot;color:#0000ff&quot;&gt;as&lt;/span&gt; [NTexto]&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p align=&quot;left&quot;&gt;&lt;br&gt;O resultado, não pode ser diferente:&lt;/p&gt; &lt;p align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p align=&quot;left&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0NCsp4bTtQUuou5CVnLn9G5IvQfE6ICNEchB0Gz643JNDvJa-ZJ_W5bjKGRHVZsn1O__XyIXPRFblMsmCU7iPr71hNWpVEVYO1UJoUkVifZ06Ovkc_-pcWaOmumC9nO5S8yozyBg3Oyhz/?imgmax=800&quot; width=&quot;694&quot; height=&quot;522&quot;&gt; &lt;/p&gt; &lt;p align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt; &lt;p align=&quot;left&quot;&gt;Veja no exemplo abaixo, se o mês fosse janeiro ou outubro, ambos ficariam corretos com a concatenação do zero à esquerda:&lt;br&gt;&lt;/p&gt; &lt;div align=&quot;left&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4SrECCFS-bR9p917lILUHYlChn0GpD_ZnWCIimtNLUV_iNio7PRqEFvhHrM_mNZWhcNKtHxEOW7hwo99fc3Jj7zDKqudsQGQYHX0_5Qat_kzfjTyAl5W5qQdImF_opI6KInGoy34VSsBp/?imgmax=800&quot; width=&quot;694&quot; height=&quot;521&quot;&gt; &lt;/div&gt; &lt;div align=&quot;left&quot;&gt;&amp;nbsp;&lt;/div&gt; &lt;p&gt;A lógica é muito simples. &lt;/p&gt; &lt;p&gt;RTRIM ~&amp;gt; utilizado para remover espaços a direita de uma string, porém quando usado em um valor inteiro, o transforma em string.&lt;/p&gt; &lt;p&gt;RIGHT(str, qtd) ~&amp;gt; Pega os caracteres à direita da string informada conforme quantidade especificada.&lt;/p&gt; &lt;p&gt;“rtrim(@numero)” ~&amp;gt; transforma o valor da variavel @numero (inteiro) em string;&lt;/p&gt; &lt;p&gt;”right(‘00000’ + rtrim(@numero),5) ~&amp;gt; concateno ao número convertido em string o número fixo de zeros a esquerda que desejo (neste caso, estou utilizando 5 zeros), e depois corto à direita 5 digitos.&lt;/p&gt; &lt;p&gt;O número 25 ao concatenar os zeros fica “0000025” e com o right(str, 5), deixa somente 00025.&lt;/p&gt; &lt;p&gt;Esta técnica garante que independente do número, ele sempre irá preencher a quantidade correta de zeros a esquerda. Lembre-se de dimensionar corretamente a quantidade de zeros, pois se o número for maior que o limite, não ocorrerá erro, porém o número retornado será truncado. (exemplo: se está trabalhando com 5 zeros, e utilizar esta técnica no número ‘123456’, retornará à string somente ‘23456’)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;That’s all folks!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;ca-pub-3972945704402371&quot;;
/* SQLBurger_ad_botton */
google_ad_slot = &quot;2137613044&quot;;
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlburger.blogspot.com/feeds/1381631247209294607/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://sqlburger.blogspot.com/2010/11/o-truque-do-zero-esquerda.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/1381631247209294607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7118970713551472781/posts/default/1381631247209294607'/><link rel='alternate' type='text/html' href='http://sqlburger.blogspot.com/2010/11/o-truque-do-zero-esquerda.html' title='O truque do zero à esquerda'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01549156267592664644</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0NCsp4bTtQUuou5CVnLn9G5IvQfE6ICNEchB0Gz643JNDvJa-ZJ_W5bjKGRHVZsn1O__XyIXPRFblMsmCU7iPr71hNWpVEVYO1UJoUkVifZ06Ovkc_-pcWaOmumC9nO5S8yozyBg3Oyhz/s72-c?imgmax=800" height="72" width="72"/><thr:total>4</thr:total></entry></feed>