Tsql 参数不工作存储过程

Tsql 参数不工作存储过程,tsql,Tsql,德马森是对的 “为DECLARE@TasksToUpdate varchar指定长度。如果未指定长度,则默认为varchar(1)。”为DECLARE@TasksToUpdate varchar指定长度。如果未指定长度,则默认为VARCHAR(1)。使用VARCHAR(max)可获得最大的灵活性。 -- This query works using the split function SELECT AssignUserID,* FROM dbo.Task WHERE TaskID in (S

德马森是对的


“为DECLARE@TasksToUpdate varchar指定长度。如果未指定长度,则默认为varchar(1)。”

DECLARE@TasksToUpdate varchar
指定长度。如果未指定长度,则默认为
VARCHAR(1)
。使用VARCHAR(max)可获得最大的灵活性。
--  This query works using the split function
SELECT AssignUserID,* FROM dbo.Task WHERE TaskID in (SELECT * FROM udf_Split ('1269469,1359508',','))


--this script using the @TasksToUpdate parameter does not work.  
--If I replace the parameter @TasksToUpdate with the string in the where clause then it does work
DECLARE @NewUser varchar 
DECLARE @TasksToUpdate varchar 
DECLARE @UpdateUser VARCHAR(30)

SET @NewUser = 'aaronteamlead'
SET @TasksToUpdate = '1269469,1359508'
SET @UpdateUser = 'updateusername'

UPDATE dbo.Task
SET AssignUserID = @NewUser,LastUpdatedDt=getdate(),LastUpdatedUser=@UpdateUser
WHERE TaskID in (SELECT * FROM udf_Split (@TasksToUpdate,','))