Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

как да използвате openrowset за изпълнение на съхранена процедура с параметри

Както OPENROWSET, така и OPENDATASOURCE трябва да се използват само за достъп до външни данни за, да кажем, бързи и мръсни решения или когато не е възможно да се конфигурира постоянно свързан сървър. Тези функции не предоставят цялата функционалност, налична от свързан сървър. Аргументите на OPENROWSET и OPENDATASOURCE не поддържат променливи. Те трябва да бъдат посочени като низов литерал. Ако променливите трябва да бъдат предадени като аргументи на тези функции, низ на заявка, съдържащ тези променливи, може да бъде конструиран динамично и изпълнен с помощта на оператора EXEC. Подобно на (не е проверен синтаксис)

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

И така нататък... Надявам се това да помогне. Сърдечни поздрави, Стефан



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделя низ с помощта на разделител char с T-SQL?

  2. Възможно ли е окончателно да се определи дали дадена DML команда е била издадена от съхранена процедура?

  3. Как мога да изпълня .sql от C#?

  4. Използване на SQL Server sp_msforeachtable за избор само на онези таблици, които отговарят на някакво условие

  5. Изходът от SQL Server и C# е различен