DECLARE @Ctx varbinary(128)
DECLARE @username varchar(30)
SET @Username='ibica'
SELECT @Ctx = CONVERT(varbinary(128), @Username)
SET CONTEXT_INFO @Ctx
SET @username = CONVERT(VarChar(128), CONTEXT_INFO());
PRINT @username
DECLARE @ID_User int
SET @ID_User = ( SELECT Users.ID_User
FROM Users
WHERE Users.Username=@username )
PRINT @ID_User
我正确设置了 context_info,因为 PRINT @username 返回正确的值,但我在第二次打印时得到一个空行。如果我在上面的 where 子句中输入一个值而不是 @username,它也会打印正确的值。我错过了什么?
DECLARE @username varchar(30)
SET @username = 'ibica';
PRINT @username
DECLARE @ID_User int
SET @ID_User = ( SELECT Users.ID_User
FROM Users
WHERE Users.Username=@username )
PRINT 'smth'
PRINT @ID_User PRINT 'smth'
我删除了 CONTEXT_INFO,现在我的输出是正确的。所以它必须与CONTEXT_INFO有关。