tag:blogger.com,1999:blog-72689510435220443682024-03-28T19:32:29.311-07:00Alexandre Nascimento .netAlexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-7268951043522044368.post-9421831814776208002024-03-21T10:28:00.000-07:002024-03-21T10:28:18.040-07:00<p><span style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px;">Olá amigos!</span></p><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">Hoje falarei brevemente sobre um assunto bem interessante no SQL Server que são as views de sistema com informações de schema do banco de dados.</p><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">O que são views de sistema?<br style="margin: 0px; padding: 0px;" />O Sql Server disponibiliza uma série de views para auxílio na localização de schema de tabelas, views, procedures, entre outras necessidades, facilitando em muito a localização e também a utilização dessas informações</p><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">Para quê servem?<br style="margin: 0px; padding: 0px;" />Digamos que seja necessário saber em qual tabela temos uma coluna contendo a string “name” em seu nome. Uma forma de resolver isto seria usando a view sysobjects e a view syscolumns, conforme exemplo abaixo:</p><div style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px; padding: 0px;"><div class="syntaxhighlighter sql" id="highlighter_939593" style="font-size: 1em !important; margin: 1em 0px !important; overflow: auto hidden !important; padding: 0.5em 1em !important; position: relative !important; width: 575px;"><table border="0" cellpadding="0" cellspacing="0" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border-radius: 0px !important; border: 2px solid rgb(204, 204, 204); box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 5px 0px 10px; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; table-layout: auto !important; vertical-align: baseline !important; width: 575px;"><tbody style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;"><tr style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;"><td class="gutter" style="background: 0px 0px !important; border-radius: 0px !important; border: 1px solid rgb(204, 204, 204); box-shadow: none !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; vertical-align: top; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-bottom-color: initial !important; border-bottom-style: initial !important; border-image: initial !important; border-left-color: initial !important; border-left-style: initial !important; border-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-color: initial !important; border-top-style: initial !important; border-width: 0px 3px 0px 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px 1em 0px 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 0px !important; position: static !important; text-align: right !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">1</div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-bottom-color: initial !important; border-bottom-style: initial !important; border-image: initial !important; border-left-color: initial !important; border-left-style: initial !important; border-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-color: initial !important; border-top-style: initial !important; border-width: 0px 3px 0px 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px 1em 0px 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 0px !important; position: static !important; text-align: right !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">2</div><div class="line number3 index2 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-bottom-color: initial !important; border-bottom-style: initial !important; border-image: initial !important; border-left-color: initial !important; border-left-style: initial !important; border-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-color: initial !important; border-top-style: initial !important; border-width: 0px 3px 0px 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px 1em 0px 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 0px !important; position: static !important; text-align: right !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">3</div><div class="line number4 index3 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-bottom-color: initial !important; border-bottom-style: initial !important; border-image: initial !important; border-left-color: initial !important; border-left-style: initial !important; border-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-color: initial !important; border-top-style: initial !important; border-width: 0px 3px 0px 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px 1em 0px 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 0px !important; position: static !important; text-align: right !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">4</div></td><td class="code" style="background: 0px 0px !important; border-radius: 0px !important; border: 1px solid rgb(204, 204, 204); box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; vertical-align: top; width: 547.391px;"><div class="container" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">SELECT</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">* </code><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">FROM</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">SYSOBJECTS OBJ</code></div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">INNER</code> <code class="sql color1" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: gray !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">JOIN</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">SYSCOLUMNS COL</code></div><div class="line number3 index2 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">ON</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">OBJ.ID = COL.ID</code></div><div class="line number4 index3 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">WHERE</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">COL.</code><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">NAME</code> <code class="sql color1" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: gray !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">LIKE</code> <code class="sql string" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">'%NAME%'</code></div></div></td></tr></tbody></table></div></div><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">Ótimo, isso funciona perfeitamente, porém existe uma forma mais fácil de fazer isto, usando as views de sistema. Em vez de usar isto, use isto:</p><div style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px; padding: 0px;"><div class="syntaxhighlighter sql" id="highlighter_541844" style="font-size: 1em !important; margin: 1em 0px !important; overflow: auto hidden !important; padding: 0.5em 1em !important; position: relative !important; width: 575px;"><table border="0" cellpadding="0" cellspacing="0" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border-radius: 0px !important; border: 2px solid rgb(204, 204, 204); box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 5px 0px 10px; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; table-layout: auto !important; vertical-align: baseline !important; width: 575px;"><tbody style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;"><tr style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;"><td class="gutter" style="background: 0px 0px !important; border-radius: 0px !important; border: 1px solid rgb(204, 204, 204); box-shadow: none !important; box-sizing: content-box !important; color: rgb(175, 175, 175) !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; vertical-align: top; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-bottom-color: initial !important; border-bottom-style: initial !important; border-image: initial !important; border-left-color: initial !important; border-left-style: initial !important; border-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-color: initial !important; border-top-style: initial !important; border-width: 0px 3px 0px 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px 1em 0px 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 0px !important; position: static !important; text-align: right !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">1</div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-bottom-color: initial !important; border-bottom-style: initial !important; border-image: initial !important; border-left-color: initial !important; border-left-style: initial !important; border-radius: 0px !important; border-right-color: rgb(108, 226, 108) !important; border-right-style: solid !important; border-top-color: initial !important; border-top-style: initial !important; border-width: 0px 3px 0px 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px 1em 0px 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 0px !important; position: static !important; text-align: right !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;">2</div></td><td class="code" style="background: 0px 0px !important; border-radius: 0px !important; border: 1px solid rgb(204, 204, 204); box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 3px 10px; position: static !important; vertical-align: top; width: 547.391px;"><div class="container" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; vertical-align: baseline !important; width: auto !important;"><div class="line number1 index0 alt2" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">SELECT</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">* </code><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">FROM</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">INFORMATION_SCHEMA.COLUMNS</code></div><div class="line number2 index1 alt1" style="background-attachment: initial !important; background-clip: initial !important; background-image: initial !important; background-origin: initial !important; background-position: 0px 0px !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; float: none !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;"><code class="sql keyword" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 102, 153) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; font-weight: 700 !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">WHERE</code> <code class="sql plain" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">COLUMN_NAME </code><code class="sql color1" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: gray !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">LIKE</code> <code class="sql string" style="background: 0px 0px !important; border-radius: 0px !important; border: 0px !important; box-shadow: none !important; box-sizing: content-box !important; color: rgb(0, 0, 255) !important; direction: ltr !important; display: inline !important; float: none !important; font-family: Monaco, Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; font-size: 1em !important; height: auto !important; inset: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; vertical-align: baseline !important; width: auto !important;">'%name%'</code></div></div></td></tr></tbody></table></div></div><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">A vantagem mais notável é a sintaxe simplificada ao mesmo tempo uma gama maior de informações retornadas sem necessidade de fazer outros joins com outras views, como é necessário fazer quando usamos as views como sysobjects, syscolumns, etc. Sempre que forem utilizar estas views, é preciso usar o nome qualificado <strong style="margin: 0px; padding: 0px;">INFORMATION_SCHEMA.<em style="margin: 0px; padding: 0px;">nome_da_view</em></strong>.</p><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">Abaixo uma lista das principais views do INFORMATION_SCHEMA e seus objetivos:</p><table style="background: rgb(255, 255, 255); border-collapse: collapse; border: 2px solid rgb(204, 204, 204); color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 5px 0px 10px; padding: 0px;"><tbody style="margin: 0px; padding: 0px;"><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Nome</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Descrição</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">CHECK_CONSTRAINTS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Informações sobre as constraints das tabelas</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">REFERENTIAL_CONSTRAINTS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Retorna uma linha para cada FOREIGN KEY no banco selecionado</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">ROUTINES</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Todas as funções definidas pelo usuário e stored procedures</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">COLUMN_PRIVILEGES</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Colunas com previlégios garantidos para ou pelo usuário atual</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">ROUTINE_COLUMNS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Informações sobre as colunas usadas nas procedures e functions</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">COLUMNS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Informações sobre todas as colunas</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">SCHEMATA</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Informações sobre os bancos de dados</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">CONSTRAINT_COLUMN_USAGE</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Colunas usadas nas constraints</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">TABLE_CONSTRAINTS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Todas as restrições das tabelas</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">CONSTRAINT_TABLE_USAGE</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Tabelas que possuem uma restrição definida</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">TABLE_PRIVILEGES</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Tabelas com previlégio garantido para ou pelo usuário atual</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">TABLES</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Informações sobre as tabelas</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">DOMAINS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Todos os tipos de dados definidos pelo usuário</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">VIEW_COLUMN_USAGE</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Informações sobre colunas utilizadas nas views</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">KEY_COLUMN_USAGE</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Colunas restringidas como uma chave</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">VIEW_TABLE_USAGE</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Tabelas usadas em uma View</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">PARAMETERS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Todos os parametros para funções definidas pelo usuário e stored procedures</td></tr><tr style="margin: 0px; padding: 0px;"><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">VIEWS</td><td style="border: 1px solid rgb(204, 204, 204); margin: 0px; padding: 3px 10px; vertical-align: top;">Informações sobre as Views</td></tr></tbody></table><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">Por hora é isso, façam seus selects e avaliem a necessidade e utilização de cada uma das views citadas.</p><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;">Referência: <a href="http://msdn.microsoft.com/en-us/library/ms186778.aspx" style="color: #2970a6; margin: 0px; padding: 0px; text-decoration-line: none;">http://msdn.microsoft.com/en-us/library/ms186778.aspx</a></p><p data-adtags-visited="true" style="background-color: white; color: #555555; font-family: Verdana, "BitStream vera Sans", Helvetica, sans-serif; font-size: 12px; margin: 0px 0px 10px; padding: 0px;"><br /></p>Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-61776244165596851772015-04-16T05:42:00.001-07:002015-04-16T05:42:31.288-07:00OFF - Música de boa qualidade!Opa, tudo bem com vocês?<br />
<br />
Estou de volta com projeto de retomar de vez as postagens, e me permito começar com uma postagem nada a ver com tecnologia...<br />
Sou músico nas horas vagas, atividade que me permite "desestressar" e esvaziar um pouco das rotinas diárias e, atualmente, toco bateria em um grupo chamado Quinteto Hope.<br />
<br />
Dêem uma olhada em nossos canais:<br />
Site : <a href="http://www.hope5.com.br/">www.hope5.com.br</a><br />
Instagram: <a href="https://instagram.com/hopemusica">https://instagram.com/hopemusica</a><br />
<br />
Grande abraço a todos e Deus os abençoe!Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-40354328719537545452015-01-28T08:31:00.001-08:002015-01-28T08:31:37.852-08:00Google Cardboard é usado pela primeira vez por uma...<a href="http://googlebrasilblog.blogspot.com/2015/01/google-cardboard-e-usado-pela-primeira.html?spref=bl">O blog do Google Brasil: Google Cardboard é usado pela primeira vez por uma...</a>: Um pedaço de papelão dobrável, duas lentes, um microchip, um ímã, um elástico e duas fitas de velcro. Nisso consiste o Google Cardboar...<br /><br />
<br /><br />
Algo extremamente interessante e criativo, mostrando que nem tudo em tecnologia precisa ser, necessariamente, dispendioso, não?<br /><br />
<br /><br />
#3D #Google #CardboardAlexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-45797266870437515882011-04-20T05:51:00.000-07:002011-04-20T05:52:53.778-07:00Como se tornar um programador de sucessoCaros,<br /><br />Este é um post escrito por meu colega Carlos Brando que me fez refletir muito sobre caminhada profissional.<br />Dêem uma olhada e comentem:<br /><br /><a href="http://www.nomedojogo.com/2010/02/10/quer-se-tornar-um-programador-de-sucesso-pare-de-escrever-codigo/">http://www.nomedojogo.com/2010/02/10/quer-se-tornar-um-programador-de-sucesso-pare-de-escrever-codigo/</a><br /><br />Abraço!Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-56206225714135748972010-09-17T06:10:00.000-07:002010-09-17T06:13:27.208-07:00Novo Blog!Galera,<br /><br />Estou fazendo parte de um blog de Tecnologia recém saído do forno, o Olho no bit.<br />A idéia é trazer informações sobre pequenos problemas do dia-a-dia, aquelas questões simples de solução rápida que, muitas vezes, nos tiram do sério!<br /><br />Acessem e acompanhem:<br /><a href="http://olhonobit.wordpress.com/">http://olhonobit.wordpress.com/</a><br /><br />[]'s !Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-25406090642237366382010-08-31T09:59:00.000-07:002010-08-31T10:06:13.705-07:00Zerando valor da coluna IdentityPost simples mas útil.<br />Se Você estiver usando uma coluna definida como "Identity" em uma tabela SQL Server, você pode definir qual o próximo valor a ser inserido nesta coluna. Por exemplo, definir que o número da sua coluna ID seja definido como 500 ao invés de 1, que seria o padrão. Abaixo alguns exemplos de como fazer isso e outras utilizações:<br /><br />Para saber qual será a próxima numeração a ser inserida na coluna identificadora:<br /><br /><span style="font-family: courier new;"><span style="color: rgb(51, 102, 255);">DBCC </span>CHECKIDENT (<span style="color: rgb(255, 0, 0);">'tablename'</span>, NORESEED)</span><br /><br />Se quiser então saber o valor do próximo ID na tabela "usuarios", pode-se usar este comando:<br /><br /><span style="font-family: courier new;">DBCC CHECKIDENT (usuarios, NORESEED)</span><br /><br />Para definir o próximo valor da sua coluna ID para 1000, use o seguinte:<br /><br /><span style="font-family: courier new;"><span style="color: rgb(51, 102, 255);">DBCC </span>CHECKIDENT (usuarios, RESEED, 999)</span><br /><br />Note que o próximo valor será 1000, pois é o valor informado no comando + 1.<br /><br />Um último detalhe é que você pode envolver o nome da tabela com aspas simples, ou os colchetes quando estiver falando em situações especiais como nome de tabela com espaços (o que eu não gosto) ou caminho completo da tabela:<br /><br /><span style="font-family: courier new;"><span style="color: rgb(51, 102, 255);">DBCC </span>CHECKIDENT ( <span style="color: rgb(255, 0, 0);">'seubancodedados.dbo.usuarios'</span>, RESEED, 999)</span><br /><br />[]'s e até a próxima!Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-44717767858048147552010-05-13T06:00:00.001-07:002010-05-13T06:00:48.560-07:00Qual sua postura ao fazer uma m… ?<p>Por acaso procurando sobre ITIL, achei no blog Profissionais de Tecnologia este artigo, onde o autor comenta uma situação que muitos de nós já viveram que é o dia em que fizemos uma, com perdão da palavra, cagada das grandes.</p> <p>Vale a pena dar uma olhada no post completo: <a title="http://www.profissionaisdetecnologia.com.br/blog/?p=116" href="http://www.profissionaisdetecnologia.com.br/blog/?p=116">http://www.profissionaisdetecnologia.com.br/blog/?p=116</a></p> <p>[]’s</p> Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-47490456542960335272010-05-07T04:39:00.001-07:002010-05-07T04:39:43.850-07:00Zen Coding<p>Olá amigos!</p> <p>Aqui estou eu novamente, falando agora brevemente sobre programação web, especificamente, HTML.</p> <p>Desde seu surgimento, o desenvolvimento em HTML manteve mais ou menos um padrão, sem passar por grandes mudanças em sua estrutura, se mantendo como uma linguagem de marcação hipertexto simples. Lembro por exemplo quando ainda muita gente codificava no bloco de notas ou editores toscos (para este fim, claro!) quaisquer.</p> <p>Quando surgiram FrontPage e, especialmente, o DreamWeaver foi “a” revolução! hehehe</p> <p>Bem, dada a introdução, Zen Coding vem para dar uma chacoalhada na forma de escrita de páginas web. Mal comparando talvez, é algo que se assemelha aos code snipets do Visual Studio, os quais estamos bem familiarizados, mas te permitindo também colocar um bocado de semântica em ação.</p> <p>Abaixo um video muito interessante sobre esta técnica chamada Zen Coding.</p> <p class="aligncenter"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="650" height="447" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=7405114&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=ffffff&fullscreen=1" /><embed type="application/x-shockwave-flash" width="650" height="447" src="http://vimeo.com/moogaloop.swf?clip_id=7405114&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=ffffff&fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p> <p>Muito interessante, ao meu ver é sim uma nova maneira de codificar em HTML e compensa dedicarmos um tempo ao assunto.</p> <p>Fonte: <a title="http://meiobit.com/65450/zen-coding-html/" href="http://meiobit.com/65450/zen-coding-html/">http://meiobit.com/65450/zen-coding-html/</a></p> Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-65410310255969235152010-03-16T10:27:00.000-07:002010-03-16T10:28:24.291-07:00Capacitação da MS para estudantesOlá amigos,<br /><br />A Microsoft está com um programa para capacitação de estudantes que parece ser muito interessante.<br />Como vira e mexe somos abordados sobre os passos para começar a desenvolver em tecnologias MS, porque não já ir direto à fonte?<br /><br />Mais informações:<br /><a href="http://info.abril.com.br/noticias/carreira/ms-tem-capacitacao-gratis-para-estudantes-16032010-7.shl">http://info.abril.com.br/noticias/carreira/ms-tem-capacitacao-gratis-para-estudantes-16032010-7.shl</a>Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-4178248048317351812009-12-04T03:18:00.001-08:002009-12-04T03:18:03.484-08:00Preciso voltar…<p>Olá meus caros!</p> <p>Estou com vários “projetos” de posts na agulha, entre eles:</p> <ul> <li>Série de posts sobre Business Intelligence usando tecnologia Microsoft; <li>Série de posts sobre arquitetura MVP (Model View Presenter);</li></ul> <p>O grande problema é que, neste momento, outros projetos (pessoais) tomaram conta do meu tempo. Estou fazendo parte de alguns projetos musicais (sim, eu tenho vida pessoal…) para o natal, e os ensaios estão uma loucura.</p> <p>Mas garanto que eu voltarei. Eu preciso.</p> <p>Ps.: Aproveitando, meu twitter: <a title="http://twitter.com/arnascimento" href="http://twitter.com/arnascimento">http://twitter.com/arnascimento</a></p> Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-81990506493906829902009-10-09T12:00:00.000-07:002009-10-09T12:02:44.816-07:00Ótimo Blog de Sharepoint<br>Olá amigos, tudo em paz?<br><br>Acessem o blog <a href="http://sharepoint-br.blogspot.com/">sharepoint-br</a> do meu amigo Diego Humel, com informações precisas sobre Sharepoint e afins, tudo em português.<br>Bom para quem já conhece ou para quem quer conhecer, inclusive com posts sobre a evolução do Sharepoint e aplicações deste.<br><br>[]'s Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-69823126224039125182009-10-01T10:30:00.001-07:002009-10-01T10:30:56.708-07:00C# - Yield return<p>Olá, amigos! Hoje falarei sobre uma funcionalidade interessante do C#.</p> <p>Existem algumas funcionalidades simples que poupam um trabalhão mas nem sempre são usadas. Como uma dessas funcionalidades, podemos considerar o iterador "yield".</p> <p>Esta funcionalidade está disponível desde a versão 2.0 do C# mas acaba passando despercebida pela maioria dos desenvolvedores. <br />Basicamente, o operador "yield" é usado para iterar através de objetos retornados por um método. Ele cria um mecanismo de estado via IL para que seja possível criar métodos que conservem o seu estado sem ser necessário manter o estado via código.</p> <p>Como exemplo simples, vamos usar um exemplo simples que retorna os itens pares em uma coleção:</p> <p>public IEnumerable RetornaPares(int[] numeros) <br />{ <br />    List<int> pares = new List<int>(); <br />    foreach (int n in numeros) <br />    { <br />        if (n % 2 == 0) <br />            pares.Add(n); <br />    } <br />    return pares; <br />}</p> <p>Normalmente usamos um list para armazenar os itens a serem retornados. <br />Usando yield return ficaria assim:</p> <p>public IEnumerable PegarPares(int[] numeros) <br />{ <br />    foreach (int n in numeros) <br />    { <br />        if (n % 2 == 0) <br />            yield return n; <br />    } <br />} </p> <p>Veja que o yield faz o trabalho para você e retorna o resultado correto, porém iterando pelos itens sem a intervenção do desenvolvedor, não sendo necessário criar nenhuma lista para o armazenamento.</p> <p>Até a próxima!</p> <p>Referências:</p> <p><a href="http://www.c-sharpcorner.com/UploadFile/rmcochran/yieldreturn04022006113850AM/yieldreturn.aspx">http://www.c-sharpcorner.com/UploadFile/rmcochran/yieldreturn04022006113850AM/yieldreturn.aspx</a></p> <p><a href="http://www.magodigital.info/post/Operador-Yield-do-C.aspx">http://www.magodigital.info/post/Operador-Yield-do-C.aspx</a></p> Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com5tag:blogger.com,1999:blog-7268951043522044368.post-25275475419575903912009-03-20T06:52:00.001-07:002009-03-20T06:52:16.406-07:00Problema na instalação do SQL 2005<p>Amigos, <br />Enfrentei um problema muito estranho na instalação do SQL 2005 na minha máquina em casa. A mensagem era mais ou menos a seguinte: </p> <p>SQL Server Setup Failed to compile the Managed Object Format (MOF) file <br />C:\Program Files\Microsoft SQL Server\90\Shared\sqlmgmproviderxpsp2up.mof. <br />To proceed, see "Troubleshooting an Installation of SQL Server 2005" or "How <br />to: View SQL Server 2005 Setup Log Files" in SQL Server 2005 Setup Help <br />documentation. </p> <p>Era um problema no WMI (Windows Management Instrumentation) e foi necessário fazer algumas correções. <br />Esses dois links me ajudaram a resolver: </p> <p><a href="http://www.mydatabasesupport.com/forums/sqlserver-faq/242406-error-when-installing-sql-2005-a.html">http://www.mydatabasesupport.com/forums/sqlserver-faq/242406-error-when-installing-sql-2005-a.html</a></p> <p><a href="http://windowsxp.mvps.org/repairwmi.htm">http://windowsxp.mvps.org/repairwmi.htm</a></p> <p>Solução comprovada. </p> <p>Abraço!</p> Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-68576804316307696862009-03-05T10:38:00.001-08:002009-03-05T11:18:18.414-08:00Retornando Listas do Sharepoint<span xmlns=""><p><span style="font-family:Arial;font-size:15;color:black;"></span></p><p><span style="font-family:Arial;font-size:10;color:black;">A integração entre as ferramentas Microsoft pode e deve ser sempre utilizada ao favor dos desenvolvedores e usuários.<br /></span></p><p><span style="font-family:Arial;font-size:10;color:black;">A ferramenta WSS, ou Windows Sharepoint Services oferece uma gama variada de serviços para compartilhamento de informações e um ambiente completo de colaboração.<br /></span></p><p><span style="font-family:Arial;font-size:10;color:black;">Neste post vamos criar um webapplication simples para retornar as listas de um determinado site do Sharepoint:<br /></span></p><ol><li><span style="font-family:Arial;font-size:10;color:black;">Criar um projeto WebApplication;<br /></span></li><li><div><span style="font-family:Arial;font-size:10;color:black;">Fazer referência ao web service na Solution Explorer, clicando com o botão direito sobre o item Web References, Add Web Reference;<br /></span></div><ol><li><span style="font-family:Arial;font-size:10;color:black;">Inserir a URL da sua aplicação SharePoint no campo URL e clicar em GO;<br /></span></li><li><span style="font-family:Arial;font-size:10;color:black;">Definir um nome da sua referência no campo Web Reference Name e clicar em Add Reference;<br /></span></li></ol></li><li><span style="font-family:Arial;font-size:10;color:black;">Inserir um asp:ListBox ao formulário default1.aspx que foi gerado pelo BIDS;<br /></span></li><li><span style="font-family:Arial;font-size:10;color:black;">Inserir um asp:Button;<br /></span></li><li><div><span style="font-family:Arial;font-size:10;color:black;">Duplo click sobre o botão Button1;<br /></span></div><ol><li><span style="font-family:Arial;font-size:10;color:black;">Vai surgir a página de edição de código;<br /></span></li><li><span style="font-family:Arial;font-size:10;color:black;">Copiar o seguinte código:<br /></span></li></ol></li></ol><p><span style="font-family:Courier New;font-size:10;color:green;">/*Declara e inicializa uma variável para listas do web service*/<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">suporteint.<span style="color:#2b91af;">Lists</span> myservice = <span style="color:blue;">new</span> suporteint.<span style="color:#2b91af;">Lists</span>();<br /></span></p><p style="MARGIN-LEFT: 18pt"><br /> </p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;color:green;">/*Autentica o usuário corrente, passando suas credenciais default para o Web service do System Credential Cache */<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">myservice.Credentials = System.Net.<span style="color:#2b91af;">CredentialCache</span>.DefaultCredentials;<br /></span></p><p style="MARGIN-LEFT: 18pt"><br /> </p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;color:green;">/* definir a propriedade URL do serviço para o seu subsite. A não definição desta propriedade retornará as listas no Web Site Raiz.*/<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">myservice.Url = <span style="color:#a31515;">"http://<seu site>/_vti_bin/Lists.asmx"</span>;<br /></span></p><p style="MARGIN-LEFT: 18pt"><br /> </p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;color:green;">/*Declare um objeto XmlNode e inicialize-o com o XML response do método GetListCollection. */<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">System.Xml.<span style="color:#2b91af;">XmlNode</span> node = myservice.GetListCollection();<br /></span></p><p style="MARGIN-LEFT: 18pt"><br /> </p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;color:green;">/*Varra através do resultado XML e defina o valor do atributo "título" para cada lista. */<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;"><span style="color:blue;">foreach</span> (System.Xml.<span style="color:#2b91af;">XmlNode</span> xmlnode <span style="color:blue;">in</span> node)<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">{<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">ListBox1.Items.Add(xmlnode.Attributes[<span style="color:#a31515;">"Title"</span>].Value);<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">ListBox1.Rows++;<br /></span></p><p style="MARGIN-LEFT: 18pt"><span style="font-family:Courier New;font-size:10;">}</span><span style="font-family:Arial;font-size:15;color:black;"><strong><br /></strong></span></p><ol><li><span style="font-family:Arial;font-size:10;color:black;">Clique start no menu debug para executar a aplicação;<br /></span></li><li><span style="font-family:Arial;font-size:10;color:black;">Clique no botão "Button1" para retornar a relação de listas do seu site sharepoint informado.<br /></span></li></ol><p><span style="font-family:Arial;font-size:10;color:black;">Compensa estudar os WebServices e métodos disponibilizados para acesso a listas e dados do Sharepoint.<br /></span></p><p><span style="font-family:Arial;font-size:10;"><span style="color:black;">Referência: <a href="http://msdn.microsoft.com/en-us/library/ms450301.aspx"></span>http://msdn.microsoft.com/en-us/library/ms450301.aspx</span></p></span></a><br /><a href="http://msdn.microsoft.com/en-us/library/ms450301.aspx"></a>Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-89679088934359681222009-01-16T05:55:00.001-08:002009-01-16T06:15:00.503-08:00Erro SSIS: product level is insufficientEu havia desenvolvido um pacote SSIS, testado exaustivamente no ambiente de desenvolvimento e, depois disso, instalamos o pacote no ambiente de testes do cliente.<br />Quando fui executar o pacote, diretamente no SSIS obtive um erro absolutamente inesperado:<br /><br />Product level is insufficient for [nome do objeto]<nome><nome><br /><br />- O pacote estava sendo executado a partir do SSMS apontando para outro servidor, onde havia sido instalado o pacote.<br />- Este servidor onde estava sendo executado o SSMS não possui o serviço do SSIS instalado, e este serviço está instalado somente no servidor "B", onde foi instalado o pacote.<br /><br />Pesquisando na web, aprendi algumas coisas interessantes sobre o comportamento e execução dos pacotes SSIS:<br />1) Quando se executa um pacote SSIS, ele é executado no servidor "A", ou seja, o que chama a execução, e utiliza todos os recursos desde CPU, inclusive os serviços. Logo, é necessário que o serviço do SSIS esteja instalado no servidor que faz a chamada ao pacote;<br />2) Uma forma de resolver esta questão, para o caso de não poder instalar o serviço do SSIS na máquina que vai chamar o pacote é agendar um SQL Job que faça a chamada ao pacote;<br /><br />Fiz os testes em ambas as situações e tudo ocorreu ok!<br /><br />Fontes:<br /><a href="http://blogs.msdn.com/michen/archive/2006/11/11/ssis-product-level-is-insufficient.aspx">http://blogs.msdn.com/michen/archive/2006/11/11/ssis-product-level-is-insufficient.aspx</a><br /><a href="http://blogs.msdn.com/michen/archive/2006/08/11/package-exec-location.aspx">http://blogs.msdn.com/michen/archive/2006/08/11/package-exec-location.aspx</a><br /><br />Ps.: Depois disso tive um outro problema, que fica para outro post...Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-29370952182644838152008-10-16T07:08:00.000-07:002008-10-16T07:13:11.580-07:00SSAS porta defaultAmigos,<br /><br />Instalando uma solução de BI num determinado cliente, me deparei com um problema para acessar os dados dos cubos através do MS Excel. A infra do cliente bloqueou algumas portas e, até o momento, não sabia qual porta deveria ser liberada para poder acessar os cubos corretamente.<br />Fazendo uma pesquisa pela web, localizei a informação, e aqui estão 3 dos links mais interessantes que eu achei:<br /><br />Ms TechNet<br /><a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/ssasproperties.mspx">http://www.microsoft.com/technet/prodtechnol/sql/2005/ssasproperties.mspx</a><br /><a href="http://www.ssas-info.com/analysis-services-faq/29-mgmt/75-what-tcp-port-ssas-2005-uses">http://www.ssas-info.com/analysis-services-faq/29-mgmt/75-what-tcp-port-ssas-2005-uses</a><br /><br /><a href="http://www.ssas-info.com/analysis-services-faq/36-excel/98-how-to-disable-excel-pivot-table-security-warning-data-connections-have-been-disabled-enable-this-content">http://www.ssas-info.com/analysis-services-faq/36-excel/98-how-to-disable-excel-pivot-table-security-warning-data-connections-have-been-disabled-enable-this-content</a><br />Este último na verdade trata de outra questão de segurança no Excel, mas vai no bolo! ;-)<br /><br />Então, a porta default do SSAS é a 2383, e esta deve ser usada pois cada named instance no SSAS gera uma porta dinâmica.<br /><br />[]'sAlexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-35278430260967600452008-09-14T13:19:00.000-07:002009-01-16T06:06:09.019-08:00Erro em cubos do SSAS depois de instalar o Source SafeNos deparamos aqui com um problema de não conseguir editar os membros calculados de um cubo depois de instalar o Source Safe. Meu colega Ricardo Ramos conseguiu achar uma solução:<br /><br />Analysis Services - Error Calculations<br />Unexpected error ocurred:<br /><br />This error is caused because an installation of the Office 2007 overwrites two particular files that are used by SSAS 2005:<br />- msmdlocal.dll<br />- msmgdsrv.dll<br />So the solution is to copy this two files from:<br />%programfiles%\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\<br />to:<br />%programfiles%\Common Files\System\Ole DB\<br /><br />Só jogar esses arquivos na pasta citada e boa!Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-49741508928035500142008-09-11T06:53:00.000-07:002009-01-16T06:05:24.561-08:00Insert intoUm código simples e interessante para inserir somente registros únicos a partir de uma outra tabela de-para que é usada para comparar se o registro já foi inserido:<br /><br /><span style="font-family:courier new;">INSERT INTO TBDPPECA<br />(ID_PECA, CODFABRICANTE, NUM_MOL, DTPROCESSAMENTO)<br />(SELECT ID_PECA, NUM_CODFABRICANTE, NUM_MOL,CONVERT(VARCHAR(10), GETDATE(), 120) + ' 00:00:00'<br />FROM DIMPECA<br />WHERE ID_PECA ><br />CASE<br />WHEN (SELECT MAX(ID_PECA) FROM TBDPPECA) IS NULL THEN 0<br />ELSE (SELECT MAX(ID_PECA) FROM TBDPPECA)<br />END<br />)</span><br /><br />Mais um update from:<br /><br /><span style="font-family:courier new;">UPDATE tbprod SET<br />ind_cestabasica = 'S'<br />FROM<br />tbcestabasica cb, tbprod p<br />where<br />cb.num_prod = p.num_prod</span>Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-80043613851507434882008-09-11T06:37:00.000-07:002008-09-24T12:02:41.109-07:00Lendo caracteres de uma string simulando um split com T-SqlEste código simula um split, mas para um caso específico que eu enfrentei, onde precisava quebrar uma string em várias, mas sabia que sempre seria preenchida desta forma: '97 98 99 00'. Precisava pegar os dois caracteres quebrando pelo espaço.<br />Dá pra fazer isso mais dinamicamente, usando CharIndex por exemplo, fica ao gosto do freguês:<br /><br /><span style="font-family:courier new;"><span style="color:#99ff99;"><span style="color:#33cc00;">/*<br />Simulando Split<br />*/</span><br /></span>print 'Segunda versão'<br />declare @stPos int<br />declare @size int<br />declare @var varchar(100)<br />set @var = '97 98 99 00'<br />set @size = len(@var)<br />set @stPos = 1<br />while @size > 0<br />begin<br />print substring(@var, @stPos, 2)<br />set @stPos = @stPos + 3<br />set @size = @size - 3<br />end</span>Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-88032285845532792502008-09-09T11:58:00.000-07:002009-10-09T12:00:55.100-07:00Usando GetDate() para retornar somente a data<p><br>SELECT CAST(CONVERT(VARCHAR(10), GETDATE(), 120) AS SMALLDATETIME)</p> <p>Melhor que usar concatenação:</p> <p>select CONVERT(VARCHAR(10), GetDate(), 120) + ' 00:00:00'</p> <p>Verificando o código para configuração da data.</p> Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-67358846773303751392008-08-28T07:13:00.000-07:002009-01-16T06:09:00.848-08:00Update FromPrecisei fazer um update a partir de uma outra tabela e apanhei um bocado tentando lembrar a sintaxe, até que achei esse exemplinho aí embaixo.<br />Tá, é uma coisa meio besta, mas como não uso isso direto esqueci mesmo, por isso postei aqui.<br /><br />Fonte: <a href="http://archives.postgresql.org/pgsql-es-ayuda/2004-05/msg00230.php">http://archives.postgresql.org/pgsql-es-ayuda/2004-05/msg00230.php</a><br /><br /><span style="font-family:courier new;font-size:85%;">UPDATE product SET<br />pro_pdetalle = ss.detalle,<br />pro_pdocena = ss.precioma2,<br />pro_pmayorista = ss.precioma1,<br />pro_prevendedor = ss.preciorev<br />FROM precios ss, product f<br />where precios.procode = f.pro_code</span>Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0tag:blogger.com,1999:blog-7268951043522044368.post-3343485582529974222008-06-17T07:02:00.001-07:002008-09-24T12:05:08.049-07:00Analysis Services errorAmigos, tudo certo?<br />Estou tentando fazer um deploy em um aplicativo de exemplo do VS2005 (BI), mas estou com o seguinte erro:<br /><br />Error 1 Errors related to feature availability and configuration: Exceeded the maximum number of partitions in a measure group. The installed server editions allows not more than 3 partitions and not more than 1 writeback partition. Errors in the metadata manager. An error occurred when loading the Internet Sales measure group, from the file, '\\?\C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\Data\Adventure Works DW.0.db\Adventure Works DW.0.cub\Fact Internet Sales 1.2.det.xml'. Errors in the metadata manager. An error occurred when loading the Adventure Works cube, from the file, '\\?\C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\Data\Adventure Works DW.0.db\Adventure Works DW.2.cub.xml'.<br /><br />Alguém tem uma luz?Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com1tag:blogger.com,1999:blog-7268951043522044368.post-50390704927677972072008-05-16T05:04:00.000-07:002008-05-16T05:05:12.296-07:00GenesisDepois de muita relutância, eu finalmente assumo um blog.<br />Meus planos aqui são de postagens de diversos assuntos de meu interesse, com ênfase especial à informática.<br /><br />Grande abraço a todos, fiquem com Deus!Alexandre Nascimentohttp://www.blogger.com/profile/03128838071528695755noreply@blogger.com0