sql >> Databáze >  >> RDS >> Sqlserver

jak použít openrowset ke spuštění uložené procedury s parametry

OPENROWSET i OPENDATASOURCE by měly být používány pouze pro přístup k externím datům pro řekněme rychlá a nečistá řešení, nebo když není možné nakonfigurovat trvale propojený server. Tyto funkce neposkytují všechny funkce dostupné z propojeného serveru. Argumenty OPENROWSET a OPENDATASOURCE nepodporují proměnné. Musí být specifikovány jako řetězcový literál. Pokud je třeba těmto funkcím předat proměnné jako argumenty, řetězec dotazu obsahující tyto proměnné lze sestavit dynamicky a spustit pomocí příkazu EXEC.Podobně jako (nekontrolována 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

A tak dále... Doufám, že to pomůže. S pozdravem, Stefan



  1. Použití createNativeQuery ke spojení dvou entit bez cizího klíče

  2. Vícenásobné vnitřní spojení vymaže atributy

  3. jak naplnit hodnotu sloupce mysql na základě vzorce?

  4. Vypočítat další primární klíč – konkrétního formátu