同样的语句,为啥T-SQL语句能执行而存储过程不能执行?
我在查询分析器里输入如下语句一:
INSERT INTO A
SELECT groupID=3,B.userID FROM B WHERE userID in('user03','user04','user05')
可以添加三行新的数据。
我再建立一个存储过程:
CREATE PROCEDURE [Test_BuildAfterDelete]
@GroupID BIGINT,
@UserIDs NVARCHAR(2000)
AS
INSERT INTO
A
SELECT groupID=@GroupID,B.userID FROM B WHERE userID in(@UserIDs)
GO
在查询分析器里运行此存储过程,得到:“(所影响的行数为 0 行)”。
请问怎样才能在存储过程里实现语句一的效果?
------解决方案--------------------
SQL code
CREATE PROCEDURE [Test_BuildAfterDelete]
@GroupID BIGINT,
@UserIDs NVARCHAR(2000)
AS
exec('
INSERT INTO
A
SELECT groupID='+rtrim(@GroupID)+',B.userID FROM B WHERE userID in('+@UserIDs+')
')
GO