1

我正在使用 SQL Server 管理工具 2008 将数据导入 Web 主机数据库。我有带有主键的表。(每行的ID)现在我可以正常导入数据了。但是当我第二次导入数据时..我需要确保只有那些当前不存在的行才被插入。如果有一个使用向导来做到这一点?如果没有,那么最佳做法是什么?

4

2 回答 2

1
  1. 将数据插入临时表
  2. 使用与主表的左连接来确定要插入哪些记录

--

CREATE TABLE T1(col1 int)
go

CREATE TABLE Temp(col1 int )
go

INSERT INTO T1
SELECT 1 
UNION 
SELECT 2

INSERT INTO TEMP
SELECT 1 
UNION 
SELECT 2
UNION 
SELECT 3 
UNION 
SELECT 4 

INSERT INTO T1 
SELECT TEMP.col1
FROM Temp 
LEFT JOIN T1 
  ON TEMP.col1 = T1.col1
WHERE T1.col1 IS NULL 
于 2013-02-09T20:09:07.073 回答
0

我前段时间用过这个,也许它可以帮助:

insert into timestudio.dbo.seccoes (Seccao,Descricao,IdRegiao,IdEmpresa)
  select distinct CCT_COD_CENTRO_CUSTO, CCT_DESIGNACAO, '9', '10' from rhxxi.dbo.RH_CCTT0 
  where CCT_COD_CENTRO_CUSTO not in (select Seccao from TimeStudio.dbo.Seccoes where idempresa = '10')

或者,只需使用简单的 IF 语句。

于 2013-02-09T19:50:52.933 回答