Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

come utilizzare openrowset per eseguire una procedura memorizzata con parametri

Sia OPENROWSET che OPENDATASOURCE dovrebbero essere usati solo per accedere a dati esterni per, diciamo, soluzioni rapide e sporche, o quando non è possibile configurare un server collegato permanente. Queste funzioni non forniscono tutte le funzionalità disponibili da un server collegato. Gli argomenti di OPENROWSET e OPENDATASOURCE non supportano le variabili. Devono essere specificati come stringa-letterali. Se le variabili devono essere passate come argomenti a queste funzioni, una stringa di query contenente queste variabili può essere costruita dinamicamente ed eseguita utilizzando l'istruzione EXEC. Simile a (non verificata la sintassi)

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 così via... Spero che questo aiuti. Cordiali saluti, Stefan