sql-server - SQL Server 2008合并语句检查并插入记录是否不存在

标签 sql-server merge

我试图通过 sql 脚本检查记录是否存在的某些条件来将记录添加到表中。我正在尝试使用合并语句。它不起作用无法找出我哪里出错了。有人可以帮我弄这个吗?。谢谢

MERGE Categories As target
    USING (
    SELECT CategoryKey 
    From Categories where CategoryName = 'TestName'
    ) AS source on (source.CategoryKey = target.CategoryKey)
WHEN Not Matched THEN
    INSERT VALUES ('TestName');

最佳答案

这样就可以了:

MERGE Categories As target
USING (SELECT 'TestName' AS CategoryName) AS source 
    ON (source.CategoryName = target.CategoryName)
WHEN NOT MATCHED THEN
    INSERT (CategoryName) VALUES ('TestName');

关于sql-server - SQL Server 2008合并语句检查并插入记录是否不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10582582/

相关文章:

c# - 将数据从 XML 导入到 SQL Server 表

git - 为什么 git 有时会将添加的行标记为已更改的行(即对添加的代码段的空冲突)

合并 XTS 数据时重复值

mysql - 合并两个MySql数据库,除了重复的PK

tfs - 在一个项目中创建一个分支,其父级在 TFS 中的另一个项目下

sql - 在 SQL Server 2005/2008 中获取星期几

sql-server - 我运行的是 32 位还是 64 位 Sql Server

sql - SqlCommand 是如何与 Sql Server 详细通信的?

sql - SQL UPDATE 操作是否将数据读取到 "local memory"?

php - Mysql:在组合列中搜索