我正在尝试用 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')
我收到这些错误:
消息 102,级别 15,状态 1,第 7 行
')' 附近的语法不正确。
Msg 137, Level 15, State 1, Line 1
必须声明标量变量“@userId”。
消息 156,级别 15,状态 1,第 3 行
关键字“SELECT”附近的语法不正确。
消息 156,级别 15,状态 1,第 5 行
关键字“插入”附近的语法不正确。
Msg 137, Level 15, State 2, Line 5
必须声明标量变量“@userId”。
我已经对标量值进行了一些谷歌搜索,当我的查询返回多行时可能会发生这种情况,我已经验证它没有。