使用不存在和插入的最佳方法是什么?

What's the best way to use not exists and insert?

我正在创建一个存储过程来检查用户名是否存在,如果不存在则插入用户 table 然后获取相同用户名的用户 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';

你可以这样做: IF NOT EXISTS(SELECT 1 FROM [user] AS t WHERE t.username = @username) BEGIN INSERT INTO [user] (username,[password]) VALUES (@username, @password) END