
domingo, 28 de fevereiro de 2010
Trabalhando com o Excel no Sql Server

sexta-feira, 26 de fevereiro de 2010
Criando um Proxy para execução de JOBs
Criando um Proxy para ser usado como usuário de execução de STEPS de um Job com pacotes do Integration Services.
-- Criação de Proxy (Criação de script)
USE [msdb]
GO
/****** Object: ProxyAccount [FT5 System Proxy] Script Date: 02/26/2010 10:52:34 ******/
EXEC msdb.dbo.sp_add_proxy @proxy_name=N'FT5 System Proxy',@credential_name=N'FT5 System Service',
@enabled=1
Ao tentar executar o JOB que estava vinculado ao Proxy, ocorreu a seguinte mensagem:
"Grant permission by calling sp_grant_proxy_to_subsystem or sp_grant_login_to_proxy"
Foi necessário dar permissão ao Proxy para dois sub-sistemas do Sql Server:
--Dando permissão do proxy para os susbsistemas
exec sp_grant_proxy_to_subsystem 1, null, 3, null -- CMD EXEC
--
exec sp_grant_proxy_to_subsystem 1, null, 11, null -- SSIS
Até a próxima!
quinta-feira, 25 de fevereiro de 2010
Você sabia que?...
Que é possível verificar que campo está sendo atualizado em uma trigger com a função update? Veja o exemplo abaixo:
Create table TesteTrigger(
codigo int identity(1,1),
nome varchar(100),
dt_nascimento datetime
)
go
create trigger trgTesteTrigger on TesteTrigger
for insert,update
as
begin
if update(nome)
begin
print 'Atualizou o nome'
end
end
insert into TesteTrigger(nome) values('Rodrigo')
O update abaixo não apresenta mensagem nenhuma:
update testetrigger set dt_nascimento=getdate()
--não apresenta mensagem nenhuma
O update abaixo apresenta a mensagem ‘Atualizou o nome’:
update testetrigger set nome=''
--aparece a mensagem 'atualizou o nome'
Até a próxima!
terça-feira, 23 de fevereiro de 2010
JOB Suspended
Subsistema 'CmdExec' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
Subsistema 'snapshot' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
Subsistema 'LogReader' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
Subsistema 'Distribution' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
Subsistema 'Mesclar' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
Subsistema 'QueueReader' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
Subsistema 'ANALYSISQUERY' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
O subsistema 'ANALYSISCOMMAND' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
Subsistema 'DTS' não pôde ser carregado (razão: O módulo especificado não foi encontrado)
quinta-feira, 18 de fevereiro de 2010
Vaga para DBA
SQL Server 2011 - Codename Denali
Função que retorna apenas números de uma STRING
Usando o comando OUTPUT
segunda-feira, 15 de fevereiro de 2010
Site sobre DTS
Para os profissionais que como eu precisam dar suporte e consultoria em pacotes DTS 2000, segue um ótimo link sobre o assunto:
Até a próxima!
quarta-feira, 10 de fevereiro de 2010
Community Webcast: Microsoft Community Day - Noite
Interessado? Clique aqui e inscreva-se!
terça-feira, 9 de fevereiro de 2010
Comandos DBCC úteis
Exemplo:
DBCC DROPCLEANBUFFERS
DBCC ERRORLOG
Exemplo: DBCC ERRORLOG
DBCC INDEXDEFRAG
Exemplo:
DBCC INDEXDEFRAG ('NOME_DO_BANCO','NOME_TABELA','NOME_INDICE')
segunda-feira, 8 de fevereiro de 2010
Conflicting locking hints specified
Problemas com restore
sexta-feira, 5 de fevereiro de 2010
Conectando um pacote DTS 2000 com um Web Service - Script Task
Faz algum tempo, precisei realizar um suporte em um ambiente SQL 2000, mais precisamente em pacotes DTS. A dificuldade era implementar em uma carga, uma validação através de um WEB Service. Se esta solução fosse escrita em Integration Services, minha vida seria muito mais fácil, porém, quem disse que a vida é fácil?
Bom, a solução foi desenvolver tudo através de um VB Script dentro de uma Script Task. O código implementado foi bem mais complexo, e estou anexando aqui apenas um Snipet.
'**********************************************************************
' Visual Basic ActiveX Script
'************************************************************************
Function Main()
Dim str_telefones
str_telefones = "123456"
http = CreateObject("Microsoft.XmlHttp")
http.open("GET", "http://enderecowebservice/varPergunta?valor=" + str_telefones + " ", False)
http.send("")
str_texto = http.responseText
Main = DTSTaskExecResult_Success
End Function
Mais um usuário feliz!
INSTEAD OF INSERT TRIGGER
quinta-feira, 4 de fevereiro de 2010
Entendo os problemas com o CONCAT_NULL_YIELDS_NULL
Execute os scripts abaixo no seu Sql Server e entenda por quê:
quarta-feira, 3 de fevereiro de 2010
Select em view indexada não usa índices
RESTORE cannot process database 'ProjetoETL' because it is in use by this session. It is recommended that the master database be used when performing this operation
segunda-feira, 1 de fevereiro de 2010
Você sabia que?...
SET vs. SELECT
declare @nome varchar(100)
Uma outra funcionalidade bastante interessante, possível apenas com o SET, é a possibilidade de concatenação de valores através de atribuição com select. Observe o código abaixo:
declare @nome varchar(100)
O código acima deve retornar a string "RodrigoDanielMaria". Esta funcionalidade serve também para valores numéricos.
E por último, mas não menos importante: atribuição com SELECT é mais rápida do que com SET? Já li muita documentação contraditória a respeito deste assunto, e depois de muito tempo trabalhando com o SQL Server, cheguei a conclusão que em muitas situações, as duas metodologias se equivalem, porém, devido ao fato das atribuições com SELECT permitirem atribuições múltiplas, a performance com esta situação pode ser mais rápida.



