【发布时间】:2021-04-26 17:28:38
【问题描述】:
我有这张桌子:
CREATE TABLE TEST
(
ID INT NOT NULL,
C_status INT NOT NULL,
SS VARCHAR(10),
CONSTRAINT [PK_TBL]
PRIMARY KEY CLUSTERED ([ID] ASC, [C_status ] ASC, [SS ] ASC)
)
现在我正在尝试使用
向此表中插入一些值INSERT INTO SELECT ...
数据中会有重复。如何仅在一个表中插入唯一值并在另一表中插入重复值。例如,如果我执行以下操作
INSERT INTO TEST
SELECT '1','90','PARIS'
UNION ALL
SELECT '1','90','PARIS'
UNION ALL
SELECT '2','90','PARIS'
我想在TEST 和2nd row 中插入1st 行和3rd 行TEST_ERROR。这可能与 SQL 查询。我的预期输出是
TEST
| ID | C_STATUS | SS |
|---|---|---|
| 1 | 90 | PARIS |
| 2 | 90 | PARIS |
TEST_ERROR
| ID | C_STATUS | SS |
|---|---|---|
| 1 | 90 | PARIS |
我已经尝试了类似下面的方法,但它显然不起作用
BEGIN TRY
insert into test
SELECT '1','90','PARIS'
UNION ALL
SELECT '1','90','PARIS'
UNION ALL
SELECT '2','90','PARIS'
END TRY
BEGIN CATCH
insert into test
.........
END CATCH
【问题讨论】:
-
对传入数据进行分组以从传入数据中删除重复数据,并使用不存在以避免插入重复数据。
标签: sql sql-server sql-server-2012