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

Как да настроя резултата от съхранената процедура exec на променлива?

Вместо:

SET @S=EXEC spGetNthNo @a,@d,@n

Имате нужда от:

EXEC @S = spGetNthNo @a,@d,@n

И тогава в рамките на процедурата имате нужда от нещо като:

RETURN 100

или:

RETURN @x

за стойността, която искате за @S след изпълнение на процедурата.

Можете също да използвате изходни параметри. Комбиниран пример:

IF OBJECT_ID('tempdb..#example') IS NOT NULL DROP PROCEDURE #example
GO

CREATE PROCEDURE #example
  @output_param INT OUTPUT
AS BEGIN
   SET @output_param = 100
   RETURN 200
END
GO

DECLARE @return INT, @param INT
EXEC @return = #example @output_param = @param OUTPUT
SELECT @return as [return value], @param as [output parameter]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да съедините две таблици с еднакъв брой редове по техния ред

  2. Конфликтът на съпоставяне не може да бъде разрешен

  3. SQL заявка за избор на низ между два известни низа

  4. Изпълнете заявка в SQL Server Analysis Services с IronPython

  5. T-SQL (varchar(max) срещу CLR (низ, SqlString, SqlChars)?