Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

como usar openrowset para executar um procedimento armazenado com parâmetros


Tanto OPENROWSET quanto OPENDATASOURCE devem ser usados ​​apenas para acessar dados externos para, digamos, soluções rápidas e sujas, ou quando não for possível configurar um servidor vinculado permanente. Essas funções não fornecem todas as funcionalidades disponíveis em um servidor vinculado. Os argumentos de OPENROWSET e OPENDATASOURCE não oferecem suporte a variáveis. Eles devem ser especificados como string-literal. Se as variáveis ​​precisam ser passadas como argumentos para essas funções, uma string de consulta contendo essas variáveis ​​pode ser construída dinamicamente e executada usando a instrução EXEC. Semelhante a (sem verificação de sintaxe)
DECLARE @sqlCommand varchar(1000)
SET @sqlCommand = 'SELECT *
FROM OPENROWSET(''SQLNCLI'',''server=.\sqlexpress;Trusted_Connection=yes'',''SET NOCOUNT ON;SET FMTONLY OFF;EXEC [BSC_DB].dbo.SelectScorecardGraphData ''''' + cast(@param1 as varchar(10)) + ''''',''' + cast(@param2 as varchar(n)) ''')'
EXEC @sqlCommand

E assim por diante... Espero que ajude. Atenciosamente, Stefan