是否编号现有表

时间:2013-07-01 18:47:31

标签: sql sql-server-2008

如何仅显示no#'s的给定列表中表格中不存在的no#s

如果no#不存在,则将no#插入表格。

1 个答案:

答案 0 :(得分:1)

here是一个演示版。基本上创建一个要检查的数字列表表,然后使用insert-select left join查询,如果它们不存在则插入它们。

DECLARE @current TABLE ( n INT )

DECLARE @numbers TABLE ( n INT )

INSERT INTO @current VALUES
(1),(2),(3),(4),(5),(6),(7),(8),(9)

INSERT INTO @numbers VALUES
(1),(10),(3),(11),(5),(12),(7),(13),(9)

-- insert from source table
-- where it does not exist
-- in destination table
INSERT INTO @current
SELECT n.n
FROM @numbers n
LEFT JOIN @current c ON n.n = c.n
WHERE c.n IS NULL

SELECT n FROM @current