Både OPENROWSET och OPENDATASOURCE bör endast användas för att komma åt extern data för, låt oss säga, snabba och smutsiga lösningar, eller när det inte är möjligt att konfigurera en permanent länkad server. Dessa funktioner tillhandahåller inte all funktionalitet som är tillgänglig från en länkad server. Argumenten för OPENROWSET och OPENDATASOURCE stöder inte variabler. De måste anges som strängbokstavar. Om variabler behöver skickas in som argument till dessa funktioner, kan en frågesträng som innehåller dessa variabler konstrueras dynamiskt och exekveras med hjälp av EXEC-satsen. Liknande (inte syntax kontrollerad)
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
Och så vidare...Hoppas det hjälper. Med vänlig hälsning, Stefan