sql >> Databasteknik >  >> RDS >> Sqlserver

hur man använder openrowset för att exekvera en lagrad procedur med parametrar

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



  1. Vilket är bättre? Underfrågor eller inre sammanfogning av tio tabeller?

  2. Kalkylblad kontra databaser:Är det dags att byta? Del 2

  3. Hantering av tidszon i webbapplikation

  4. Förstå Self Join