gpt4 book ai didi

sql-server-2005 - 为一批执行语句声明全局变量-sql server 2005

转载 作者:行者123 更新时间:2023-12-04 06:55:29 25 4
gpt4 key购买 nike

我有一个 SQL 语句,其中我试图更新客户端机器上的表。sql语句如下:

    BEGIN TRANSACTION


DECLARE @CreatedBy INT

SELECT @CreatedBy = [User_Id]
FROM Users
WHERE UserName = 'Administrator'

--////////////////////////////////////////////////////////////////////
--////////////////////////////////////////////////////////////////////

PRINT @CreatedBy --(Works fine here and shows me the output)

PRINT N'Rebuilding [dbo].[Some_Master]'
ALTER TABLE [dbo].[Some_Master]
ADD [CreatedBy] [BIGINT] NULL,
[Reason] [VARCHAR](200) NULL
GO

PRINT @CreatedBy --(does not work here and throws me an error)


PRINT N'Updating data in [Some_Master] table'
UPDATE Some_Master
SET CreatedBy = @CreatedBy

COMMIT TRANSACTION

但我收到以下错误:

必须声明标量变量“@CreatedBy”。

现在我观察到如果我在 alter 命令上方写 Print 语句它工作正常并向我显示它的值,但是如果我尝试在 Alter 命令之后打印值它会抛出我上面指定的错误。

不知道为什么??请帮忙!

谢谢

最佳答案

这是因为GO,它标志着一批命令的结束。所以在 GO 之后,它是一个单独的批处理,变量 @CreatedBy 不再在范围内。

尝试删除 GO 语句。

关于sql-server-2005 - 为一批执行语句声明全局变量-sql server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com