我有一个简单的脚本更新并显示useraccount.(与管理工作室2010合作)为了防止用户错误,我想在SQL中使用变量(之前从未这样做过).
阅读教程时,它应该像下面的代码示例一样简单,除了我收到错误消息.在网上搜索具有相同错误的人,我最终看到了具有相同错误的非常复杂的代码.有人能给我一个线索吗?
DECLARE @Username nvarchar(256) 
Set @Username = 'theUsername'
UPDATE aspnet_Membership
SET IsLockedOut = 0
WHERE UserId IN (SELECT U.UserId
FROM aspnet_Users as U inner join aspnet_Membership M on U.UserId = M.UserId
WHERE u.UserName = @Username)
GO 
SELECT U.UserId, U.UserName, M.Password, M.IsLockedOut, U.LastActivityDate
FROM aspnet_Users as U inner join aspnet_Membership M on U.UserId = M.UserId
WHERE u.UserName = @Username
消息137,级别15,状态2,行3必须声明标量变量"@Username".
GO脚本中有一个内部,GO将您的脚本分成两个批次,因此必须在之后重新定义所有使用的变量GO,因为范围仅限于此批次.
顺便说一句:我不认为,这GO是必要的,不是吗?
感谢@gbn和@alexm给出提示,将GO单独的语句分成批次而不是交易,另请参阅http://msdn.microsoft.com/en-us/library/ms188037.aspx