【发布时间】:2015-11-06 05:15:36
【问题描述】:
我正在创建一个存储过程来检查用户名是否存在,如果不存在则插入用户表,然后获取相同用户名的用户 ID。这就是我正在尝试的
alter Procedure Check_Name
(
--@idn integer,
@username varchar(25),
@password varchar(100)
--@role_id integer
)
As
Begin
INSERT INTO [user] (username,[password])
SELECT username,[password]
FROM [user] AS u
WHERE NOT EXISTS(
SELECT idn FROM [user] AS t
WHERE u.username = t.username);
End
当我尝试执行时,它说零行受到影响..问题是什么
execute Check_Name 'Pope', 'Life2Stressfull';
【问题讨论】:
-
好的,我改变了它..然后我无法为我的 role_id 插入 null,所以插入了一个值。现在我违反了 UNIQUE KEY 约束“UQ__user__F3DBC5722FAC4C26”。无法在对象“dbo.user”中插入重复键。重复键值为 (Franz123)。我不明白,因为我插入的用户名不是“Franz123”
-
WHERE u.username = t.username AND t.username = @username
标签: sql-server stored-procedures exists