gpt4 book ai didi

sql - 我想在存储过程中传递一个选择查询作为参数

转载 作者:行者123 更新时间:2023-12-03 15:22:42 26 4
gpt4 key购买 nike

我做了这个程序..

ALTER PROCEDURE [dbo].[MyProcedure]
@pSelect nvarchar
AS
BEGIN
SET NOCOUNT ON;

select @pSelect from tabel1
END

我想将像从 c# 代码这样的选择查询传递给这个存储过程
MyProcedure("column1,column2");

我怎么能这样做,因为存储过程将我的参数视为字符串,它的行为类似于
select N'column1,column2' from tabel1

请帮助我

或为此提供更好的选择

最佳答案

您必须在存储过程中使用动态 sql。

ALTER PROCEDURE [dbo].[MyProcedure]
@pSelect nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;

DECLARE @SQL nvarchar(max)

SET @SQL = 'select ' + @pSelect + ' from tabel1';

EXEC (@SQL)
END

这是测试上述存储过程的脚本:
CREATE TABLE tabel1 (id int, data varchar(50))
INSERT INTO tabel1 VALUES(1,'aaa'),(2,'bbb'),(3,'ccc')

EXEC [dbo].[MyProcedure] 'id'
EXEC [dbo].[MyProcedure] 'data'
EXEC [dbo].[MyProcedure] 'id,data'

关于sql - 我想在存储过程中传递一个选择查询作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18479975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com