gpt4 book ai didi

sql-server - SQL Server 脚本语法错误和 "must declare the scalar value"

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

我正在尝试用 T-SQL 编写脚本来解决我们系统上的一个关键问题。不幸的是,我以前从未这样做过,所以我正在进入未知水域。

我实际上正在编写一个 PHP 脚本来生成此 SQL。如果用户存在,则创建它。但在这两种情况下,都将用户添加到组中。

DECLARE @userId AS int

/* --------------- 123l123123fvsdf - Name --------------- */
BEGIN
IF EXISTS(SELECT id FROM [CMT_UAT].[dbo].[user] WHERE username = '123l123123fvsdf')
INSERT INTO [CMT_UAT].[dbo].[user](username, password, email, firstname, lastname, created) VALUES('123l123123fvsdf', 'PASSWORD', 'aa00043@user.com', 'firstName', 'lastName', GETDATE())
GO
SET @userId = @@IDENTITY
ELSE
SET @userId = SELECT id FROM [CMT_UAT].[dbo].[user] WHERE username = 'AA00043'
END
INSERT INTO [CMT_UAT].[dbo].[user_group](user_id, group_id) VALUES(@userId, '7')

我遇到了这些错误:

Msg 102, Level 15, State 1, Line 7
Incorrect syntax near ')'.
Msg 137, Level 15, State 1, Line 1
Must declare the scalar variable "@userId".
Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'SELECT'.
Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'INSERT'.
Msg 137, Level 15, State 2, Line 5
Must declare the scalar variable "@userId".

我已经对标量值进行了一些谷歌搜索,当我的查询返回多行时可能会发生这种情况,我已经验证它不会。

最佳答案

从你的脚本中去掉“GO”。 “GO”是一个提供者指令,它告诉连接管理器结束执行批处理并开始一个新的执行批处理。因此,它正在重置您的执行上下文,清除您的 @userid 变量声明。

关于sql-server - SQL Server 脚本语法错误和 "must declare the scalar value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13730887/

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