【发布时间】:2021-06-30 16:35:44
【问题描述】:
我正在寻找一个程序来检查一行中的数据是否已经在两个不同的表中,如果找到它们则失败,因此它不会在表中创建重复的行。
目前我有
If NOT EXISTS (SELECT 1 FROM table_a)
这可以阻止它复制表 a 中的行,但如果数据也已经在表 b 中,我希望它不能插入一行。实现这一目标的最佳方法是什么?
【问题讨论】:
标签: sql sql-server database
我正在寻找一个程序来检查一行中的数据是否已经在两个不同的表中,如果找到它们则失败,因此它不会在表中创建重复的行。
目前我有
If NOT EXISTS (SELECT 1 FROM table_a)
这可以阻止它复制表 a 中的行,但如果数据也已经在表 b 中,我希望它不能插入一行。实现这一目标的最佳方法是什么?
【问题讨论】:
标签: sql sql-server database
您可以检查多个带有NOT EXISTS (SELECT 1 FROM table_a WHERE ..) AND NOT EXISTS (SELECT 1 FROM table_b WHERE ..) 条件的表格
【讨论】:
您也可以将 NOT EXISTS 与 union all 一起使用。
IF NOT EXISTS(
SELECT 1 FROM Table_a WHERE condition
UNION ALL
SELECT 1 FROM Table_b WHERE condition
.
.
.
)
BEGIN
-- Your logic
END
【讨论】: