quinta-feira, 26 de novembro de 2009

Resultado de uma procedure em uma tabela usando into

Para direcionarmos o resultado de uma procedure para uma tabela, precisamos
primeiro criar a tabela, através de um comando "CREATE TABLE". Por exemplo,
se quisermos adicionar o resultado da procedure SP_WHO para uma tabela denominada
TMP_RESULT devemos fazer o seguinte:


CREATE TABLE [dbo].[tmp_result](
    [spid] [smallint] NOT NULL,
    [ecid] [smallint] NOT NULL,
    [status] [nchar](30) NOT NULL,
    [loginame] [nvarchar](128) NULL,
    [hostname] [nchar](128) NOT NULL,
    [blk] [char](5) NULL,
    [dbname] [nvarchar](128) NULL,
    [cmd] [nchar](16) NOT NULL,
    [request_id] [int] NOT NULL
)
GO

INSERT INTO TMP_RESULT
EXEC SP_WHO

SELECT * FROM TMP_RESULT

Porém, podemos realizar este procedimento sem necessariamente criar a tabela resultado
antes da execução da procedure, utilizando o comando OPENROWSET.

Veja o script abaixo:

SELECT * into tmp_result

FROM OPENROWSET('SQLNCLI', 'Server=10.100.1.194\des05;Trusted_Connection=yes;',
'set fmtonly off exec sp_who')

Nenhum comentário:

Postar um comentário

Leave your comment here!