[英]Using a select Statement (with multiple results) as an input parameter for Stored Procedure
[英]How to write stored procedure passing select statement as input parameter?
我有一個存儲過程,輸出一個選擇語句,如下所示:
select case when count(*) > 10 then ''A1'' else ''B1'' end as id, name, address from database.dbo.student
現在,我想編寫一個存儲過程,將一個select
語句作為字符串輸入,並返回所有上述輸出。 我不確定在哪里分配輸出變量。
ALTER PROCEDURE dbo.selectAttributes
@select_statement Nvarchar(MAX),
@id Nvarchar(255) OUT,
@name nvarchar(255) OUT,
@address nvarchar(255) OUT
AS
BEGIN
DECLARE @query nvarchar(MAX)
SET @query = @select_statement
EXEC sp_executesql @query,
N'@select_statement Nvarchar(MAX),
@idOUT Nvarchar(255) OUTPUT,
@nameOUT nvarchar(255) OUTPUT,
@addressOUT nvarchar(255) OUTPUT',
@select_statement, @id OUTPUT, @name OUTPUT, @address OUTPUT
END
我認為您很親密:
ALTER PROCEDURE dbo.selectAttributes (
@select_statement Nvarchar(MAX),
@id Nvarchar(255) OUTPUT,
@name nvarchar(255) OUTPUT,
@address nvarchar(255) OUTPUT
) AS
BEGIN
EXEC sp_executesql @select_statement,
N'@id Nvarchar(255) OUTPUT, @name nvarchar(255) OUTPUT, @address nvarchar(255) OUTPUT',
@id = @id OUTPUT,
@name = @name OUTPUT,
@address = @address OUTPUT
END;
換一種說法:
OUTPUT
關鍵字放在任何地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.