Cod*_*ife 0 c# database sql-server visual-studio
我正在尝试编写允许我只插入具有不同 ID 的记录的代码;如果数据库中已存在相同的 ID,则不应插入该记录。
我的 SQL 代码是这样的:
SqlCommand cmd = new SqlCommand("insert into User(UserId,Name,Profession) values(@UserId,@Name,@Profession) WHERE NOT EXISTS (Select UserId From User where UserId = @UserId)", con);
Run Code Online (Sandbox Code Playgroud)
但它不起作用,当我尝试此操作时,没有任何内容添加到数据库中。如何更正此查询?
谢谢,
代替 :
insert into User(UserId,Name,Profession)
values(@UserId,@Name,@Profession)
WHERE NOT EXISTS (Select UserId From User where UserId = @UserId)
Run Code Online (Sandbox Code Playgroud)
使用此查询:
insert into User(UserId,Name,Profession)
select @UserId, @Name, @Profession
where not exists (Select UserId From User where UserId = @UserId)
Run Code Online (Sandbox Code Playgroud)
说明:AFAIK 插入命令不能组合 VALUES 和 WHERE 子句。但不是直接提供值(使用 VALUES 子句),您可以定义一个 SELECT 来指示要插入的值。在那个 SELECT 上,您现在可以使用过滤器、连接等......,因此您可以在那里定义过滤器,检查该行是否仍然存在。
| 归档时间: |
|
| 查看次数: |
6670 次 |
| 最近记录: |