<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marcelo Abib Cardoso &#187; SQL Server</title>
	<atom:link href="http://marcelo.todoinfo.com.br/category/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://marcelo.todoinfo.com.br</link>
	<description>SQL Server, Dicas, Rails, Mobile</description>
	<lastBuildDate>Wed, 23 Mar 2011 17:41:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SQL Server &#8211; Procedimento Armazenado sp_helptext</title>
		<link>http://marcelo.todoinfo.com.br/sql-server-procedimento-armazenado-sp_helptext/</link>
		<comments>http://marcelo.todoinfo.com.br/sql-server-procedimento-armazenado-sp_helptext/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 22:00:15 +0000</pubDate>
		<dc:creator>Marcelo Abib Cardoso</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[procedimentos armazenados]]></category>
		<category><![CDATA[procedures]]></category>
		<category><![CDATA[sp_helptext]]></category>

		<guid isPermaLink="false">http://marcelo.todoinfo.com.br/?p=155</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Esses dias estava precisando verificar uma view de maneira rápida, sem ficar expandindo para ver colunas ou o que ela faz e foi ai que lembrei que aprendi essa procedure, responsável por mostrar aquilo que você fez. Serve para view, tabela, função, procedure ou até mesmo para uma coluna específica.

Sintaxe: sp_helptext [ [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sql-server-procedimento-armazenado-sp_helptext/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQL Server &#8211; Procedimento Armazenado sp_helptext" data-url="http://marcelo.todoinfo.com.br/sql-server-procedimento-armazenado-sp_helptext/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Esses dias estava precisando verificar uma view de maneira rápida, sem ficar expandindo para ver colunas ou o que ela faz e foi ai que lembrei que aprendi essa procedure, responsável por mostrar aquilo que você fez. Serve para view, tabela, função, procedure ou até mesmo para uma coluna específica.<br />
<strong><br />
Sintaxe: sp_helptext [ @objname = ] &#8216;name&#8217; [ , [ @columnname = ] computed_column_name ]</strong></p>
<p>Exemplos<br />
Para listar a regra definida para uma determinada view<br />
Ex: EXEC sp_helptext vwListaCadastrados</p>
<p>Para determinada coluna usa assim:<br />
Ex: EXEC sp_helptext @objname = &#8216;tbExemplo1&#8242;, @columnname = nome</p>
<p>Fica a dica,<br />
Até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sql-server-procedimento-armazenado-sp_helptext/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server &#8211; Alterar language de um login ou servidor</title>
		<link>http://marcelo.todoinfo.com.br/sql-server-alterar-language-de-um-login-ou-servidor/</link>
		<comments>http://marcelo.todoinfo.com.br/sql-server-alterar-language-de-um-login-ou-servidor/#comments</comments>
		<pubDate>Wed, 27 May 2009 14:03:26 +0000</pubDate>
		<dc:creator>Marcelo Abib Cardoso</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[idioma]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[reconfigure]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://marcelo.todoinfo.com.br/?p=104</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Muitas vezes temos que alterar languages que vem como padrão (us_english) no Banco de dados, quando se cria um.
Hoje tive que fazer isso, tive que alterar para Brazilian(Brasil), mas como fazer?
É simples, veja:
Para verificarmos qual language esta no banco de dados:
SELECT @@language, @@langid
Onde vão ser retornados o language e o id desta [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sql-server-alterar-language-de-um-login-ou-servidor/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQL Server &#8211; Alterar language de um login ou servidor" data-url="http://marcelo.todoinfo.com.br/sql-server-alterar-language-de-um-login-ou-servidor/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Muitas vezes temos que alterar languages que vem como padrão (us_english) no Banco de dados, quando se cria um.<br />
Hoje tive que fazer isso, tive que alterar para Brazilian(Brasil), mas como fazer?</p>
<p>É simples, veja:</p>
<p>Para verificarmos qual language esta no banco de dados:<br />
<strong>SELECT @@language, @@langid</strong><br />
Onde vão ser retornados o language e o id desta language.</p>
<p>Como alterar a language para um determinado login?<br />
<strong>EXEC sp_defaultlanguage &#8216;user&#8217;, &#8216;language&#8217;</strong><br />
Ex: EXEC sp_defaultlanguage &#8217;sateste&#8217;, &#8216;brazilian&#8217;<br />
EXEC sp_defaultlanguage &#8217;sateste&#8217;, &#8216;us_english&#8217;</p>
<p>Feito isso precisamos reconfigurar, portanto:<br />
<strong>RECONFIGURE</strong><br />
Pronto, fizemos a alteração da language, agora é só parar(stop) e iniciar(start) o SQL Server.</p>
<p>Caso queira mudar o language padrao para o servidor, usamos a procedure sp_configure, assim:<br />
<strong>EXEC sp_configure &#8216;default language&#8217;, 27</strong><br />
- &#8211; 27 refere-se ao langid brasileiro</p>
<p>Para você saber os langids ou nome que se usa(Brazilian, us_english), basta executar este comando:<br />
<strong>USE master<br />
SELECT * FROM SYSLANGUAGES</strong><br />
Vão retornar todos os langids e mais informações interessantes.</p>
<p>Abraço,<br />
Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sql-server-alterar-language-de-um-login-ou-servidor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server &#8211; Criptografia</title>
		<link>http://marcelo.todoinfo.com.br/sql-server-criptografia/</link>
		<comments>http://marcelo.todoinfo.com.br/sql-server-criptografia/#comments</comments>
		<pubDate>Fri, 22 May 2009 18:51:50 +0000</pubDate>
		<dc:creator>Marcelo Abib Cardoso</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[criptografia]]></category>
		<category><![CDATA[descriptografar]]></category>

		<guid isPermaLink="false">http://marcelo.todoinfo.com.br/?p=102</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Exemplo de como criptografar e descriptografar palavras.
&#8211;Declara a variavel e atribui o valor para criptografar e posteriormente descriptografar.
DECLARE @Chave VARCHAR(1000)
SET @Chave = &#8216;chave&#8217;
&#8211;Declara a variavel e atribui a palavra que queira criptografar
DECLARE @PalavraCriptografada VARCHAR(1000)
SET @PalavraCriptografada = &#8216;teste123&#8242;
&#8211;Processo de criptografia, usando o ENCRYPTBYPASSPHRASE
DECLARE @Criptografa VARBINARY(5000)
SET @Criptografa = ENCRYPTBYPASSPHRASE(@Chave, @PalavraCriptografada)
&#8211;Descriptografando usando DECRYPTBYPASSPHRASE
DECLARE @Descripta VARCHAR(5000)
SET [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sql-server-criptografia/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQL Server &#8211; Criptografia" data-url="http://marcelo.todoinfo.com.br/sql-server-criptografia/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Exemplo de como criptografar e descriptografar palavras.</p>
<p>&#8211;Declara a variavel e atribui o valor para criptografar e posteriormente descriptografar.<br />
DECLARE @Chave VARCHAR(1000)<br />
SET @Chave = &#8216;chave&#8217;</p>
<p>&#8211;Declara a variavel e atribui a palavra que queira criptografar<br />
DECLARE @PalavraCriptografada VARCHAR(1000)<br />
SET @PalavraCriptografada = &#8216;teste123&#8242;</p>
<p>&#8211;Processo de criptografia, usando o ENCRYPTBYPASSPHRASE<br />
DECLARE @Criptografa VARBINARY(5000)<br />
SET @Criptografa = ENCRYPTBYPASSPHRASE(@Chave, @PalavraCriptografada)</p>
<p>&#8211;Descriptografando usando DECRYPTBYPASSPHRASE<br />
DECLARE @Descripta VARCHAR(5000)<br />
SET @Descripta = DECRYPTBYPASSPHRASE(@Chave, @Criptografa)</p>
<p>&#8211;Mostrando os resultados<br />
SELECT @Chave AS Chave,@PalavraCriptografada AS PalavraCriptografada,<br />
@Criptografa AS criptografia,@Descripta AS descriptada</p>
<p>Abraço,<br />
Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sql-server-criptografia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLServer 2005 &#8211; Procedimentos Armazenados (sp_who)</title>
		<link>http://marcelo.todoinfo.com.br/sqlserver-2005-procedimentos-armazenados_sp_who/</link>
		<comments>http://marcelo.todoinfo.com.br/sqlserver-2005-procedimentos-armazenados_sp_who/#comments</comments>
		<pubDate>Thu, 21 May 2009 13:29:30 +0000</pubDate>
		<dc:creator>Marcelo Abib Cardoso</dc:creator>
				<category><![CDATA[Celular]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[sessões]]></category>
		<category><![CDATA[sp_who]]></category>
		<category><![CDATA[usuários]]></category>

		<guid isPermaLink="false">http://marcelo.todoinfo.com.br/?p=98</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Olá Pessoal,
Colocarei 4 procedimentos armazenados úteis para se obter informações quanto a usuários logados, processos atuais, espaço utilizado e etc, são eles:
- sp_who
- sp_spaceused
- sp_monitor
Falaremos hoje sobre o sp_who
sp_who
Responsavél por retornar os usuários logados, processos e sessões.
Sintaxe
EXEC sp_who login, sessao, &#8216;Active&#8217;
Exemplos:
EXEC sp_who
Resultado: Retorna todos os usuários atuais.
EXEC sp_who &#8217;sa&#8217;
Resultado: Retorna os processos [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sqlserver-2005-procedimentos-armazenados_sp_who/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQLServer 2005 &#8211; Procedimentos Armazenados (sp_who)" data-url="http://marcelo.todoinfo.com.br/sqlserver-2005-procedimentos-armazenados_sp_who/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Olá Pessoal,</p>
<p>Colocarei 4 procedimentos armazenados úteis para se obter informações quanto a usuários logados, processos atuais, espaço utilizado e etc, são eles:<br />
- sp_who<br />
- sp_spaceused<br />
- sp_monitor<br />
Falaremos hoje sobre o sp_who<span id="more-98"></span><br />
<strong>sp_who</strong><br />
Responsavél por retornar os usuários logados, processos e sessões.</p>
<p>Sintaxe<br />
EXEC sp_who login, sessao, &#8216;Active&#8217;</p>
<p>Exemplos:<br />
EXEC sp_who<br />
Resultado: Retorna todos os usuários atuais.</p>
<p>EXEC sp_who &#8217;sa&#8217;<br />
Resultado: Retorna os processos do usuário &#8217;sa&#8217;.</p>
<p>EXEC sp_who &#8216;active&#8217;<br />
Resultado: Retorna os processos ativos</p>
<p>EXEC sp_who &#8216;200&#8242;<br />
Resultado: Retorna a sessão 200, onde 200 é o ID da Sessão.</p>
<p>Os resultados que o <strong>sp_who </strong>retorna, são esses:<br />
<strong>spid</strong><br />
Id da sessão.<br />
<strong>ecid</strong><br />
Id da thread que esta sendo executada, associada a um spid(Id da sessão).<br />
Obs: Por padrão o ecid vem 0(Id da Sessão pai), caso venha 1,2,3,n eles são &#8220;filhos&#8221; do processo pai.<br />
<strong> status</strong><br />
Status do processo, valores:<br />
<strong>dormant </strong>- O SQL Server esta redefinindo a sessão.<br />
<strong>running </strong>- A Sessão esta executando um ou mais lotes.<br />
<strong>background </strong>- A Sessão esta executando uma tarefa em segundo plano.<br />
<strong>rollback </strong>- A sessão tem uma reversão de transação em processo.<br />
<strong>pending </strong>- A sessão está aguardando que uma thread de trabalho seja disponibilizado.<br />
<strong>runnable </strong>- A tarefa da sessão está na fila executável de um agendador enquanto aguarda para obter um quantum de hora.<br />
spinloop &#8211; A tarefa da sessão está aguardando que um spinlock seja liberado.<br />
suspended &#8211; A sessão está aguardando que um evento, como E/S(Entrada/Saída), seja concluído.<br />
<strong>loginname</strong> &#8211; Nome do login responsavel pelo processo. Ex: sa<br />
<strong> hostname </strong>- Nome do computador ou host que esta executando o processo.<br />
<strong>blk</strong> &#8211; ID de sessão do processo de bloqueio, se houver. Caso contrário, essa coluna será zero.<br />
Quando uma transação associada a uma ID de sessão especificada for bloqueada por uma transação distribuída órfã, essa coluna retornará um &#8216;-2&#8242; para o bloqueio da transação órfã.</p>
<p><strong>dbname </strong>- Nome da base de dados onde esta sendo executado o processo<br />
<strong>cmd </strong>- Comando que esta sendo executado pelo processo.<br />
<strong>request_id</strong> &#8211; ID de solicitações em execução em uma sessão específica.</p>
<p>Observações:<br />
Requer permissão <strong>VIEW SERVER STATE</strong> no servidor para visualizar todas as sessões em execução na instância de SQL Server. Caso contrário, o usuário verá somente a sessão atual.</p>
<p><strong>Mais informações:</strong> <a title="Msdn - sp_who" href="http://msdn.microsoft.com/pt-br/library/ms174313.aspx" target="_blank">http://msdn.microsoft.com/pt-br/library/ms174313.aspx</a></p>
<p>Bom por hoje é só, até a próxima,<br />
Obrigado,<br />
Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sqlserver-2005-procedimentos-armazenados_sp_who/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server &#8211; Cross Apply</title>
		<link>http://marcelo.todoinfo.com.br/sql-server-cross-apply/</link>
		<comments>http://marcelo.todoinfo.com.br/sql-server-cross-apply/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 20:40:18 +0000</pubDate>
		<dc:creator>Marcelo Abib Cardoso</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Cross apply]]></category>
		<category><![CDATA[join]]></category>

		<guid isPermaLink="false">http://marcelo.todoinfo.com.br/?p=70</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Olá pessoal,
Hoje falaremos sobre cross aply que é um código do T-SQL para junção(Join).
- Qual é o problema que enfrentamos?
- Onde o cross apply entra?
O maior problema de hoje é quando vamos utilizar subquerys, ex:
SELECT usuario.Nome, usuario.Email, compl.Endereco
FROM tbUsuario usuario
CROSS JOIN
(SELECT Endereco, Numero FROM tbComplementos WHERE iduser = usuario.iduser) compl
Quando a utilização [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sql-server-cross-apply/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQL Server &#8211; Cross Apply" data-url="http://marcelo.todoinfo.com.br/sql-server-cross-apply/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Olá pessoal,<br />
Hoje falaremos sobre cross aply que é um código do T-SQL para junção(Join).<br />
- Qual é o problema que enfrentamos?<br />
- Onde o cross apply entra?<span id="more-70"></span></p>
<p>O maior problema de hoje é quando vamos utilizar subquerys, ex:<br />
SELECT usuario.Nome, usuario.Email, compl.Endereco<br />
FROM tbUsuario usuario<br />
CROSS JOIN<br />
(SELECT Endereco, Numero FROM tbComplementos WHERE iduser = usuario.iduser) compl</p>
<p>Quando a utilização é parecida com a de cima, retorna erro que a variavel esta fora do escopo ou que a variável não pode ser vinculada, porque o T-SQL usado com inner, right ou left join,  não aceita subquery de tabela derivada.</p>
<p>É ai que o CROSS APPLY entra, na troca do CROSS JOIN para CROSS APPLY a sua SQL vai funcionar perfeito.<br />
SELECT usuario.Nome, usuario.Email, compl.Endereco<br />
FROM tbUsuario usuario<br />
CROSS APPLY<br />
(SELECT Endereco, Numero FROM tbComplementos WHERE iduser = usuario.iduser) compl</p>
<p>Isso vale pra quando você for usar alguma função, ex:<br />
SELECT usuario.Nome, usuario.Email, compl.Endereco<br />
FROM tbUsuario usuario<br />
CROSS JOIN dbo.fnComplementos(usuario.iduser) compl</p>
<p>aqui vai retornar o mesmo erro citado no primeiro item.</p>
<p>mas ao mudarmos para CROSS APPLY, volta a funcionar.</p>
<p>SELECT usuario.Nome, usuario.Email, compl.Endereco<br />
FROM tbUsuario usuario<br />
CROSS APPLY dbo.fnComplementos(usuario.iduser) compl</p>
<p>Bom pessoal, é isso quem tiver dúvidas pode me mandar e-mail ou comenta ai.</p>
<p>Referência: <a href="http://sqlserver-brasil.blogspot.com/2008/08/t-sql-cross-apply.html" target="_self">http://sqlserver-brasil.blogspot.com/2008/08/t-sql-cross-apply.html</a></p>
<p>Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sql-server-cross-apply/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server &#8211; Linked Server</title>
		<link>http://marcelo.todoinfo.com.br/sql-server-linked-server/</link>
		<comments>http://marcelo.todoinfo.com.br/sql-server-linked-server/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 17:12:24 +0000</pubDate>
		<dc:creator>Marcelo Abib Cardoso</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[linked server]]></category>

		<guid isPermaLink="false">http://marcelo.todoinfo.com.br/?p=60</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Olá Pessoal,
Estaremos falando aqui sobre linked server e abordaremos estes tópicos:
- O que é o linked server e pra que serve.
- Exemplo de funcionamento de um linked server.
Linked server é a &#8220;ponte&#8221; entre o sql server e qualquer outra fonte de dados sendo ela um access, excel, oracle, o próprio sql server [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sql-server-linked-server/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQL Server &#8211; Linked Server" data-url="http://marcelo.todoinfo.com.br/sql-server-linked-server/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Olá Pessoal,</p>
<p>Estaremos falando aqui sobre linked server e abordaremos estes tópicos:<br />
- O que é o linked server e pra que serve.<br />
- Exemplo de funcionamento de um linked server.<span id="more-60"></span></p>
<p>Linked server é a &#8220;ponte&#8221; entre o sql server e qualquer outra fonte de dados sendo ela um access, excel, oracle, o próprio sql server e etc.<br />
Muito útil para muitos desenvolvedores e muito simples para criar e utilizar.<br />
No exemplo mostraremos o linked server com uma fonte access. Vamos ao passo a passo.</p>
<p>1- Criaremos um banco de dados ACCESS chamado dbTeste no c:\linkedservers\</p>
<p>2- Criaremos uma tabela chamada tbTeste com essa estrutura:<br />
id autonumeracao<br />
Nome text<br />
Email text</p>
<p>3- Agora abriremos SQL Server Management Studio. Conecta no seu servidor e mãos a obra.</p>
<p>4- Abre uma nova query e vamos criar nosso linked server<br />
USE master<br />
EXEC sp_addlinkedserver &#8216;lsteste&#8217;, &#8211;Nome do Linked Server<br />
&#8216;OLE DB Provider for Jet&#8217;, &#8212; Provider do Access<br />
&#8216;Microsoft.Jet.OLEDB.4.0&#8242;, &#8211;Nome do produto, pode ser qualquer nome. ex: Access, ls Access.<br />
&#8216;C:\linkedservers\dbTeste.mdb&#8217; &#8212; Caminho fisico completo.</p>
<p>o nosso linked server esta pronto, mas antes de testarmos teremos que mudar uma opção que ele cadastra por padrão.</p>
<p>5- Vai em Server Objects, expand Linked Serves e acha o lsteste.<br />
- Clica duas vezes no lsteste ou botão direito e propriedades.<br />
* Temos uma guia chamada &#8220;Security&#8221;<br />
Abaixo tem varias opções, por padrao ele cadastra na 3.<br />
Mudaremos para a 2 opção como mostra figura abaixo.</p>
<p><img class="alignnone size-full wp-image-62" title="Linked Server - Propridade de segurança" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/linkedserver3-25-2009-15909-pm.jpg" alt="Linked Server - Propridade de segurança" width="514" height="512" /></p>
<p>6-     Para verificarmos se ele esta listando as tabelas do access, podemos executar a procedure abaixo:<br />
EXEC sp_tables_ex lsteste</p>
<p><img class="alignnone size-full wp-image-61" title="Linked Server - Listando as tabelas" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/linkedserver3-25-2009-15850-pm.jpg" alt="Linked Server - Listando as tabelas" width="548" height="168" /></p>
<p>7- Pronto, feito isso, nosso linked server esta pronto e configurado. Agora vamos testar:<br />
INSERT INTO lsteste&#8230;tbTeste(Nome, Email) VALUEs (&#8217;Marcelo&#8217;,'teste@teste.com.br&#8217;)<br />
SELECT * FROM lsteste&#8230;tbTeste</p>
<p>Pronto pessoal, sobre linked server é isso, porém podemos ir mais longe que criarmos uma conexão com access.<br />
Podemos criar link entre SQL Servers so que em servidores diferentes, criar um link com o oracle e por ai vai.</p>
<p>Quem quiser pode colocar no comentario os testes que fizeram.</p>
<p>Referência: <a title="MSDBA Brasil" href="http://www.mcdbabrasil.com.br/modules.php?name=News&amp;file=article&amp;sid=66" target="_self">http://www.mcdbabrasil.com.br/modules.php?name=News&amp;file=article&amp;sid=66</a></p>
<p>Abraço,<br />
Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sql-server-linked-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SQL Server 2005 &#8211; Exportando Dados/Estrutura</title>
		<link>http://marcelo.todoinfo.com.br/sql-server-2005-exportando-dadosestrutura/</link>
		<comments>http://marcelo.todoinfo.com.br/sql-server-2005-exportando-dadosestrutura/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:04:42 +0000</pubDate>
		<dc:creator>mabib</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[dados]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[exportar]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://marceloabibcardoso.wordpress.com/?p=30</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Exportando estrutura/dados para o SQL Server 2005
Problemas encontrados:
- Todos que tentam exportar suas bases para outros lugares tem um problema com o exportador. Ou você exporta a estrutura ou você exporta os dados.
Solução:
- Ferramenta DataBase Publishing
- Tem plugin para o Visual Studio
- Vai script de insert, estrutura de tabelas, schemas, triggers,  procedures [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sql-server-2005-exportando-dadosestrutura/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQL Server 2005 &#8211; Exportando Dados/Estrutura" data-url="http://marcelo.todoinfo.com.br/sql-server-2005-exportando-dadosestrutura/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p><strong>Exportando estrutura/dados para o SQL Server 2005</strong></p>
<p><strong>Problemas encontrados:</strong><br />
- Todos que tentam exportar suas bases para outros lugares tem um problema com o exportador. Ou você exporta a estrutura ou você exporta os dados.<span id="more-30"></span></p>
<p><strong>Solução:</strong><br />
- Ferramenta DataBase Publishing<br />
- Tem plugin para o Visual Studio<br />
- Vai script de insert, estrutura de tabelas, schemas, triggers,  procedures e views.<br />
<strong><br />
Links para download:</strong><br />
<a title="Download" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&amp;displaylang=en" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&amp;displaylang=en</a><br />
Tamanho: 2MB</p>
<p>64bits tem que baixar esse também, senão vai ocorrer um erro ao utilizar a ferramenta acima:<br />
<a title="Download para 64 bits" href="http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_XMO_x64.msi" target="_blank">http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_XMO_x64.msi</a><br />
Tamanho: 15mb<br />
<strong><br />
Seguem alguns screenshots:</strong><br />
Iniciar &#8211;&gt; Programas &#8211;&gt; Microsoft SQL Server Database Publishing Wizard<br />
<img class="alignnone size-full wp-image-35" title="sqlserver2-4-2009-33001-pm" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/sqlserver2-4-2009-33001-pm.jpg" alt="sqlserver2-4-2009-33001-pm" width="491" height="447" /></p>
<p>Vindo pelo windows temos a tela a seguir, onde você coloca os dados do banco que você quer gerar o script, caso venha pelo Visual Studio esta tela não terá a segunda opção.</p>
<p><img class="alignnone size-full wp-image-36" title="sqlserver2-4-2009-33019-pm" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/sqlserver2-4-2009-33019-pm.jpg" alt="sqlserver2-4-2009-33019-pm" width="491" height="447" /></p>
<p>Após colocar os dados corretos, temos a tela a seguir, na qual escolheremos nosso banco.<br />
<img class="alignnone size-full wp-image-37" title="sqlserver2-4-2009-33124-pm" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/sqlserver2-4-2009-33124-pm.jpg" alt="sqlserver2-4-2009-33124-pm" width="491" height="449" /></p>
<p>Escolhendo o banco, temos na tela abaixo a opção de salvar o arquivo no disco fisico ou então publicar em algum outro endereço.</p>
<p><img class="alignnone size-full wp-image-39" title="sqlserver2-4-2009-33138-pm1" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/sqlserver2-4-2009-33138-pm1.jpg" alt="sqlserver2-4-2009-33138-pm1" width="492" height="447" /></p>
<p>Depois de escolher onde salvaremos, vamos ter algumas opções, como esta mostrando na tela abaixo.<br />
<img class="alignnone size-full wp-image-41" title="sqlserver2-4-2009-33204-pm" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/sqlserver2-4-2009-33204-pm.jpg" alt="sqlserver2-4-2009-33204-pm" width="490" height="449" /></p>
<p>Após colocarmos as opções que desejamos, temos o resumo do que foi feito.<br />
Agora é só finalizar.</p>
<p><img class="alignnone size-full wp-image-40" title="sqlserver2-4-2009-33226-pm" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/sqlserver2-4-2009-33226-pm.jpg" alt="sqlserver2-4-2009-33226-pm" width="493" height="448" /></p>
<p>Se formos pelo visual studio temos o item Publish to Provider, como mostra abaixo.</p>
<p><img class="alignnone size-full wp-image-42" title="sqlserver2-4-2009-33311-pm" src="http://marcelo.todoinfo.com.br/wp-content/uploads/2009/03/sqlserver2-4-2009-33311-pm.jpg" alt="sqlserver2-4-2009-33311-pm" width="285" height="322" /></p>
<p>Bom por hoje é só pessoal.</p>
<p>Obrigado,<br />
Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sql-server-2005-exportando-dadosestrutura/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server &#8211; Criação de tabelas com chave estrangeira</title>
		<link>http://marcelo.todoinfo.com.br/sql-server-criacao-de-tabelas-com-chave-estrangeira/</link>
		<comments>http://marcelo.todoinfo.com.br/sql-server-criacao-de-tabelas-com-chave-estrangeira/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 20:41:51 +0000</pubDate>
		<dc:creator>mabib</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[chave estrangeira]]></category>
		<category><![CDATA[foreign key]]></category>

		<guid isPermaLink="false">http://marceloabibcardoso.wordpress.com/2009/03/16/sql-server-criacao-de-tabelas-com-chave-estrangeira/</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Olá Pessoal,
Hoje estaremos abordando a criação de uma tabela com chave estrangeira ou foreign key.
Abordaremos então:
- O que é uma chave estrangeira(FK)?
- Colocando em prática
- Por que usar?
Bom pra começar chave estrangeira ou foreign key, é a relação entre duas tabelas tendo na tabela “mãe” a referência da tabela “filho”.
Ficou confuso?
vamos exemplificar, [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sql-server-criacao-de-tabelas-com-chave-estrangeira/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQL Server &#8211; Criação de tabelas com chave estrangeira" data-url="http://marcelo.todoinfo.com.br/sql-server-criacao-de-tabelas-com-chave-estrangeira/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Olá Pessoal,</p>
<p>Hoje estaremos abordando a criação de uma tabela com chave estrangeira ou foreign key.</p>
<p>Abordaremos então:</p>
<p>- O que é uma chave estrangeira(FK)?</p>
<p>- Colocando em prática</p>
<p>- Por que usar?<span id="more-27"></span></p>
<p>Bom pra começar chave estrangeira ou foreign key, é a relação entre duas tabelas tendo na tabela “mãe” a referência da tabela “filho”.</p>
<p>Ficou confuso?</p>
<p>vamos exemplificar, todos nós sabemos que um cliente precisa morar em uma cidade, então temos a tabela “mãe” que é a Cliente, onde nos atributos tem a referência da tabela filho que é a Cidade, conforme mostro a seguir:</p>
<p>Cliente                        Cidade</p>
<p>(                                  (</p>
<p>ClienteId(PK)                CidadeId(PK)</p>
<p>Nome                          Cidade</p>
<p>Endereco                     Estado</p>
<p>Telefone                  )</p>
<p>CidadeId(FK)</p>
<p>)</p>
<p>reparem que coloquei uma coluna chamada CidadeId, o que é essa CidadeId? Nada mais é que a chave primaria da tabela Cidade e a chave estrangeira da tabela Clientes.</p>
<p>Pois na hora de inserir registros na tabela de Clientes, ao invés de inserirmos Campinas, Vinhedo, Valinhos, nós armazenaremos a referência delas na tabela de Cidade.</p>
<p>CidadeId    Cidade        Estado</p>
<p>1            Campinas       SP</p>
<p>2            Valinhos        SP</p>
<p>3            Vinhedo         SP</p>
<p>Na tabela de Cliente só iremos armazenar 1,2 ou 3, que são os registros existentes na tabela de Cidade, caso um “engraçadinho” tente inserir um 4 por exemplo, sem que ele esteja na tabela de Cidade dará um erro de chave estrangeira, não sendo possível a gravação.</p>
<p>Agora entendi, mas como crio uma chave estrangeira?</p>
<p>Simples, iremos criar as tabelas Cliente e Cidade primeiro. Uma boa prática para criação de tabelas, é sempre começar pelas tabelas simples, ou seja, aquelas que não possuem chave estrangeira.</p>
<p>CREATE TABLE Cidade</p>
<p>(</p>
<p>CidadeId    int not null IDENTITY(1,1),</p>
<p>Cidade        nvarchar(64) not null CONSTRAINT UQ_Cidade_Cidade UNIQUE,</p>
<p>Estado        char(2) not null,</p>
<p>CONSTRAINT PK_Cidade_CidadeId PRIMARY KEY(CidadeId)</p>
<p>)</p>
<p>CREATE TABLE Cliente</p>
<p>(</p>
<p>ClienteId    int not null IDENTITY(1,1),</p>
<p>Nome        nvarchar(128) not null,</p>
<p>Endereco    nvarchar(128) not null,</p>
<p>CidadeId    int not null,</p>
<p>CONSTRAINT PK_Cidade_ClienteId PRIMARY KEY(ClienteId),</p>
<p>CONSTRAINT FK_Cliente_Cidade_CidadeId FOREIGN KEY(CidadeId) REFERENCES Cidade(CidadeId)</p>
<p>)</p>
<p>Repare que na tabela Cliente, eu crio a chave estrangeira, mas esse não é o único jeito de criar. Poderiamos ter criado as tabelas Cliente/Cidade, e depois usar a keyword ALTER TABLE para estar adicionando a chave, conforme mostro abaixo:</p>
<p>ALTER TABLE Cliente</p>
<p>ADD CONSTRAINT FK_Cliente_Cidade_CidadeId</p>
<p>FOREIGN KEY(CidadeId)</p>
<p>REFERENCES Cidade(CidadeId)</p>
<p>Bom, já entendi o que é, já criei a chave, mas por que utiliza-la?</p>
<p>Pois bem, utilizamos ela para:</p>
<p>* Manter a concistência do banco de dados</p>
<p>* Para criação de indices, na qual estaremos vendo adiante.</p>
<p>* Para otimização do banco de dados.</p>
<p>* Para facilitar a manutenção.</p>
<p>Pessoal, por hoje é só, quem tiver dúvidas no assunto, pode comentar que eu respondo ou ainda me mandar e-mail: marcelinho.ruliz@gmail.com</p>
<p>Abraço,</p>
<p>Té mais.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sql-server-criacao-de-tabelas-com-chave-estrangeira/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SQLServer &#8211; Constraints</title>
		<link>http://marcelo.todoinfo.com.br/sqlserver-constraints/</link>
		<comments>http://marcelo.todoinfo.com.br/sqlserver-constraints/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 20:35:36 +0000</pubDate>
		<dc:creator>mabib</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Check]]></category>
		<category><![CDATA[Constraint]]></category>
		<category><![CDATA[Default]]></category>
		<category><![CDATA[Unique]]></category>

		<guid isPermaLink="false">http://marceloabibcardoso.wordpress.com/?p=20</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Olá Pessoal,
Neste artigo estaremos falando um pouco mais  de constraints e como colocar valores padrões em colunas.
Segue:
- O que são constraints
- Onde elas são utilizadas
- Tipos de constraints
O que são constraints?
Constraints são restrições feitas para as colunas nas tabelas contendo diversos tipos, na qual falaremos adiante.
Onde elas são utilizadas?
Elas são utilizadas [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/sqlserver-constraints/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="SQLServer &#8211; Constraints" data-url="http://marcelo.todoinfo.com.br/sqlserver-constraints/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Olá Pessoal,</p>
<p>Neste artigo estaremos falando um pouco mais  de constraints e como colocar valores padrões em colunas.</p>
<p>Segue:</p>
<p>- O que são constraints</p>
<p>- Onde elas são utilizadas</p>
<p>- Tipos de constraints<span id="more-20"></span></p>
<p><strong>O que são constraints?</strong></p>
<p>Constraints são restrições feitas para as colunas nas tabelas contendo diversos tipos, na qual falaremos adiante.</p>
<p><strong>Onde elas são utilizadas?</strong></p>
<p>Elas são utilizadas na criação de uma tabela ou mesmo junto com a keyword ALTER TABLE, onde podemos adicionar ou remover constraints.</p>
<p><strong>Tipo de constraints:</strong></p>
<p><strong>- Primary key(PK)</strong></p>
<p>Já vimos anteriomente no artigo criação de tabelas(Simples).</p>
<p>Ex:</p>
<p>CREATE TABLE Exemplo</p>
<p>(</p>
<p>ExemploId int not null Identity(1,1),</p>
<p>Campo2 int not null,</p>
<p>CONSTRAINT PK_Exemplo_ExemploId PRIMARY KEY(ExemploId)</p>
<p>)</p>
<p><strong>- Unique(UQ)</strong></p>
<p>Cria uma restrição para a coluna, onde não pode ter dois valores iguais.</p>
<p>Ex:</p>
<p>CREATE TABLE Newsletter</p>
<p>(</p>
<p>NewsletterId    int not null IDENTITY(1,1) CONSTRAINT PK_Newsletter_NewsletterId PRIMARY KEY,</p>
<p>Email nvarchar(64) not null CONSTRAINT UQ_Newsletter_Email UNIQUE</p>
<p>)</p>
<p>Ao inserir dois e-mails iguais ele vai gerar um erro de UNIQUE KEY, dizendo que você está duplicando o registro.</p>
<p><strong>- Foreign key(FK)</strong></p>
<p>Ainda não vimos o que é um foreign key(Chave Estrangeira), será um próximo artigo, mas resumindo cria-se uma referência com o indice(PK) de uma outra tabela.</p>
<p>Ex:</p>
<p>CREATE TABLE Funcao</p>
<p>(</p>
<p>FuncaoId int not null IDENTITY(1,1) CONSTRAINT PK_Funcao_FuncaoId PRIMARY KEY,</p>
<p>Nome nvarchar(32) not null</p>
<p>)</p>
<p>CREATE TABLE Funcionario</p>
<p>(</p>
<p>FuncionarioId int not null IDENTITY(1,1) CONSTRAINT PK_Funcionario_FuncionarioId PRIMARY KEY,</p>
<p>Nome nvarchar(64) not null,</p>
<p>FuncaoId int not null,</p>
<p>CONSTRAINT FK_Funcionario_FuncaoId FOREIGN KEY(FuncaoId)</p>
<p>REFERENCES Funcao(FuncaoId)</p>
<p>)</p>
<p>Neste exemplo temos a tabela Funcao que pode ser Gerente, Desenvolvedor  e etc.</p>
<p>e na tabela Funcionario colocamos o Nome, ex Marcelo e a funcao, porem na funcao nao vamos colocar Desenvolvedor, e sim colocamos a referencia que ela é na tabela de funcao, Ex: 2</p>
<p>Visualmente ficaria assim</p>
<p>Tabela: Funcao</p>
<p>FuncaoId    Nome</p>
<p>1            Gerente</p>
<p>2            Desenvolvedor</p>
<p>Tabela: Funcionario</p>
<p>FuncionarioId    Nome    FuncaoId</p>
<p>1                Marcelo    2</p>
<p>Se colocarmos um FuncaoId que não existe na tabela de Funcao dará erro de Foreign Key.</p>
<p><strong>- Check(CK)</strong></p>
<p>Check, é uma constraint que especifica que condição a coluna precisa para salvar um registro.</p>
<p>Ex:</p>
<p>Na tabela Cliente, temos o campo SEXO e nele só pode ser inserido F ou M, entao criamos uma constraint de check, só permitindo essas duas letras e evitando que seja inserido A, B, C.</p>
<p>CREATE TABLE Cliente</p>
<p>(</p>
<p>ClienteId    int not null IDENTITY(1,1) CONSTRAINT PK_Cliente_ClienteId PRIMARY KEY,</p>
<p>Nome nvarchar(64) not null,</p>
<p>Sexo char(1) not null CONSTRAINT CK_Cliente_Sexo CHECK(Sexo = ‘M’ or Sexo = ‘F’)</p>
<p>)</p>
<p>Ao ser inserido A, B, C ele não permitirá e dará erro na constraint CK_Cliente_Sexo, pois ela só aceita M ou F.</p>
<p>E para finalizar os tipos de constraints e o artigo falaremos da Constraint <strong>DEFAULT(DF)</strong></p>
<p>Essa constraint é responsalvel por colocar valores padrões nas colunas.</p>
<p>Ex: DataCadastro eu posso colocar um valor padrão que seria a data de hoje.</p>
<p>CREATE TABLE Teste</p>
<p>(</p>
<p>Nome nvarchar(64) not null,</p>
<p>DataCadastro datetime not null CONSTRAINT DF_Teste_DataCadastro DEFAULT getDate()</p>
<p>)</p>
<p>Então ao inserir um nome e “ignorarmos” a data de cadastro, ele preencherá com a data de hoje.</p>
<p>Bom por enquanto é só,</p>
<p>Até a próxima,</p>
<p>Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/sqlserver-constraints/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criação de tabelas(Simples)</title>
		<link>http://marcelo.todoinfo.com.br/criacao-de-tabelassimples/</link>
		<comments>http://marcelo.todoinfo.com.br/criacao-de-tabelassimples/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 21:17:04 +0000</pubDate>
		<dc:creator>mabib</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[primary key]]></category>
		<category><![CDATA[tabelas]]></category>
		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://marceloabibcardoso.wordpress.com/?p=15</guid>
		<description><![CDATA[ 
				
			 
				Tweet 
			
	Olá Pessoal,
Hoje estaremos abordando a criação de tabelas, segue os pontos a ser discutido neste artigo:
- O que é uma tabela?
- Representação de uma tabela no SQL Server
- O que é uma chave primária de uma tabela
- O que é a cláusula IDENTITY?
- Criando uma tabela por código
O que é uma tabela?
Tabela [...]]]></description>
			<content:encoded><![CDATA[<div style="height:21px; padding-top:2px;" class="really_simple_share"><div style="float:left; width:100px; " class="really_simple_share_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http://marcelo.todoinfo.com.br/criacao-de-tabelassimples/&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=21" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:110px; padding-left:10px;" class="really_simple_share_twitter"> 
				<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
					data-text="Criação de tabelas(Simples)" data-url="http://marcelo.todoinfo.com.br/criacao-de-tabelassimples/">Tweet</a> 
			</div></div>
	<br style="clear:both;" /><p>Olá Pessoal,</p>
<p>Hoje estaremos abordando a criação de tabelas, segue os pontos a ser discutido neste artigo:<br />
- O que é uma tabela?<br />
- Representação de uma tabela no SQL Server<br />
- O que é uma chave primária de uma tabela<br />
- O que é a cláusula IDENTITY?<br />
- Criando uma tabela por código<span id="more-15"></span></p>
<p><span style="font-weight:bold;">O que é uma tabela?</span><br />
Tabela nada mais é que uma representação matricial, ou seja, possui colunas e linhas.<br />
E para o SQL Server não é diferente, quando criamos uma tabela, damos o nome das colunas,<br />
que também chamamos de campos ou atributos, e o tipo que elas são, discutidos nos artigos passados.</p>
<p><span style="font-weight:bold;">Represetação de uma tabela no SQL Server</span><br />
Representa-se assim:<br />
CREATE TABLE tbExemplo<br />
(<br />
coluna1    tipo1,<br />
coluna2 tipo2<br />
)</p>
<p><span style="font-weight:bold;">O que é uma chave primária?</span><br />
Referem-se a um conjunto de um ou mais campos de uma tabela.<br />
Características:<br />
- Nunca se repetem<br />
- Tem dois tipos de chaves:<br />
Simples: Onde só possui um campo, e o mesmo não pode se repetir<br />
Composta: Onde possui mais de um campo, os valores podem se repetir, mas a combinação entre eles não.<br />
- Pode ser usada como indice para as demais tabelas<br />
- Não pode haver valores nulos nas chaves primárias</p>
<p><span style="font-weight:bold;">O que é a cláusula IDENTITY?</span><br />
Usada quase sempre em conjunto com a chave primária, Identity é o autonumeração do Access.<br />
No Identity temos 2 propriedades:<br />
Increment, que diz de quanto em quanto vai ser o incremento do seu campo.<br />
Seed, que diz de onde começa o autoincremento.</p>
<p>Exemplificando:<br />
CREATE TABLE tbExemplo<br />
(<br />
campo1    int not null IDENTITY(2,100)<br />
campo2    nvarchar(64)<br />
)<br />
Nessa tabela criamos o campo1 sendo autonumeração que vai andar de 2 em 2, e começar do 100.<br />
Se incluirmos 3 registros ficaria assim:<br />
campo1        campo2<br />
102            Teste1<br />
104            Teste2<br />
106            Teste3<br />
e o próximo?seria o 108 e assim por diante.</p>
<p><span style="font-weight:bold;">Criando uma tabela por código</span><br />
Neste tópico, mostrarei como cria uma tabela simples por código, mais não vai ser muita surpresa, pois nos posts anteriores, já coloquei a estrutura da tabela.<br />
Para criar uma tabela por código usamos a cláusula CREATE TABLE, sua estrutura é assim:<br />
CREATE TABLE NomeTabela<br />
(<br />
coluna_1    tipo_de_dado_1 [not null],<br />
coluna_2    tipo_de_dado_1 [not null],<br />
coluna_3    tipo_de_dado_1 [not null]<br />
)</p>
<p>o not null entre colchetes, quer dizer que você pode colocar ou não. A omissão dele deixa seu campo recebendo nulo.</p>
<p>Bom chega de bla bla bla, e vamos criar uma tabela de Departamentos, que possui os seguintes atributos:<br />
- ID(que é um autoincremento e nossa chave primária)<br />
- Nome(Que é o nome do departamento)<br />
- DataCadastro(Data de cadastro desse departamento)<br />
- Ativo(E se o departamento está ativo ou não)</p>
<p>Segue:<br />
CREATE TABLE Departamento<br />
(<br />
DepartamentoId    bigint not null IDENTITY(1,1),<br />
Nome nvarchar(64) not null,<br />
DataCadastro datetime not null,<br />
Ativo bit not null,<br />
CONSTRAINT PK_Departamento_DepartamentoId PRIMARY KEY(DepartamentoId)<br />
)</p>
<p>Observações:<br />
Falaremos do cláusula CONSTRAINT no próximo artigo, mais resumindo, essa cláusula é usada para criarmos regras para nossas tabelas. Neste exemplo criamos uma regra para adicionarmos uma chave primária.<br />
Existem outras formas para adicionar, mais eu particularmente prefiro assim, pois separa os campos das constraints.<br />
Mais a mesma tabela pode ser criada da seguinte forma:</p>
<p>Forma2:<br />
CREATE TABLE Departamento<br />
(<br />
DepartamentoId    bigint not null IDENTITY(1,1) Primary Key,<br />
Nome nvarchar(64) not null,<br />
DataCadastro datetime not null,<br />
Ativo bit not null<br />
)<br />
Nesta forma colocamos a primary key logo na linha do nosso ID, porém o SQL Server gera um nome automaticamente da chave.<br />
O Padrão de nome é PK(primary key)_NomeTabela_NomeCampo<br />
Ex: PK_Departamento_DepartamentoId</p>
<p>Forma3:<br />
CREATE TABLE Departamento<br />
(<br />
DepartamentoId    bigint not null IDENTITY(1,1) CONSTRAINT PK_Departamento_DepartamentoId PRIMARY KEY,<br />
Nome nvarchar(64) not null,<br />
DataCadastro datetime not null,<br />
Ativo bit not null<br />
)<br />
Muito parecido com a primeira forma, só muda o lugar que coloca a constraint, que colocamos em cima, ao invés de deixarmos por último.</p>
<p>Bom pessoal, por hoje é só.<br />
Obrigado,<br />
Marcelo</p>
]]></content:encoded>
			<wfw:commentRss>http://marcelo.todoinfo.com.br/criacao-de-tabelassimples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

