Para armazenar o select de uma stored procedure, no sql 2005 eh um pouco diferente.
precisa seguir alguns passos:
- precisa ter um linked server configurado.
- chamar a rotina que retornara o conteudo da proc.
configurando o linked server:
exec sp_addlinkedserver
@server = '[nome que vc dara ao link]',
@srvproduct = '',
@provider = 'SQLNCLI',--FICA ASSIM MESMO
@provstr = 'DRIVER={SQLServer};SERVER=[IP DO SEU SERVIDOR ONDE ESTA A SUA BASE];UID=[LOGIN];PWD=[SENHA];'
feito isso teremos o link configurado.
agora basta chamar a rotina assim:
select * from openquery([nome dado ao link],
'execute [Teste_RetornoProc])
com isso pode-se inserir o retorno em qualquer tabela, tanto temporaria ou variavel, ou mesmo tabela fisica.
Mostrando postagens com marcador query. Mostrar todas as postagens
Mostrando postagens com marcador query. Mostrar todas as postagens
quarta-feira, 22 de dezembro de 2010
Armazenando o retorno de uma Stored Procedure SQL
Esse eu perdi um tempinho procurando pois nao sabia como funcionava, mas achei um tutorial da microsoft e fiquei besta da facilidade:
Ex.
--proc exemplo
create procedure Teste_RetornaStatus
@contratoId as int
as begin
select contratoStatus
from contrato
where contratoId = @contratoId
end
--executando a proc
declare @status as int
--armazenando o retorno da procedure (simples)
execute @status = Teste_RetornaStatus @contratoId = 12
pronto , o retorno esta na variavel @status.
Ex.
--proc exemplo
create procedure Teste_RetornaStatus
@contratoId as int
as begin
select contratoStatus
from contrato
where contratoId = @contratoId
end
--executando a proc
declare @status as int
--armazenando o retorno da procedure (simples)
execute @status = Teste_RetornaStatus @contratoId = 12
pronto , o retorno esta na variavel @status.
sexta-feira, 17 de dezembro de 2010
UNION ALL vs UNION e ordenação
Se você sabe que não pode haver valores duplicados entre duas tabelas, então sempre use UNION ALL. Ele salva o banco de dados de realizar diversas triagens para ordenação dos seus dados.
Seu DBA não estará satisfeito com você se usar UNION desnecessariamente. É uma característica padrão do UNION realizar ordenação, mesmo sem a existência da opção de ORDER BY.
Seu DBA não estará satisfeito com você se usar UNION desnecessariamente. É uma característica padrão do UNION realizar ordenação, mesmo sem a existência da opção de ORDER BY.
quinta-feira, 16 de dezembro de 2010
Transferindo registros de uma tabela para outra
para inserir dados de uma tabela para outra, seria assim:
INSERT INTO table1 (nome) SELECT nome FROM table2;
INSERT INTO table1 (nome) SELECT nome FROM table2;
Assinar:
Postagens (Atom)