Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

comment utiliser openrowset pour exécuter une procédure stockée avec des paramètres

OPENROWSET et OPENDATASOURCE ne doivent être utilisés que pour accéder à des données externes pour, disons, des solutions rapides et sales, ou lorsqu'il n'est pas possible de configurer un serveur lié permanent. Ces fonctions ne fournissent pas toutes les fonctionnalités disponibles à partir d'un serveur lié. Les arguments de OPENROWSET et OPENDATASOURCE ne prennent pas en charge les variables. Ils doivent être spécifiés en tant que littéraux de chaîne. Si des variables doivent être transmises en tant qu'arguments à ces fonctions, une chaîne de requête contenant ces variables peut être construite dynamiquement et exécutée à l'aide de l'instruction EXEC. Similaire à (non vérifiée pour la syntaxe)

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

Et ainsi de suite... J'espère que ça aide. Cordialement, Stéphane