sql >> Base de Datos >  >> RDS >> Sqlserver

cómo usar openrowset para ejecutar un procedimiento almacenado con parámetros

Tanto OPENROWSET como OPENDATASOURCE deben usarse solo para acceder a datos externos para, digamos, soluciones rápidas y sucias, o cuando no es posible configurar un servidor vinculado permanente. Estas funciones no proporcionan toda la funcionalidad disponible desde un servidor vinculado. Los argumentos de OPENROWSET y OPENDATASOURCE no admiten variables. Deben especificarse como literales de cadena. Si es necesario pasar variables como argumentos a estas funciones, se puede construir dinámicamente una cadena de consulta que contenga estas variables y ejecutarse mediante la instrucción EXEC. Similar a (sin verificación de sintaxis)

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

Y así sucesivamente... Espero que eso ayude. Saludos cordiales, Stefan