我只是想知道我的选择会返回一行。 这样的事情是可能的还是我需要一个临时变量?
假设我的存储过程采用了一个参数:
exec dbo.GetUserData @UserName = UserName from @MyTempTable where UserId= @UserId
或者如果期望的参数是XML怎么办?有没有办法可以做像
这样的事情exec dbo.GetUserData @UserXml =
select
case
when @val = 1 then '1'
when @val = 0 then '0'
else NULL
end as '@MyId',
@ThisId as '@ThisId',
@ThatId as '@ThatId'
FOR XML PATH('Info')
答案 0 :(得分:4)
XML或其他方式,在EXEC调用中使用变量之前将值赋给变量。
DECLARE @UserName [data type]
BEGIN
SELECT @UserName = UserName
FROM @MyTempTable
WHERE UserId = @UserId
EXEC dbo.GetUserData @UserName
END
答案 1 :(得分:4)
你需要一个临时变量。
DECLARE @username nvarchar(20)
SELECT @username = Username FROM @MyTempTable WHERE UserId=@UserId
exec dbo.GetUserData @Username.