Jer*_*oyd 4 sql-server-2008 insert import
我不确定这是否是正确的术语“紧凑插入语句”,这正是我一直听到的。它是这样的:
INSERT INTO [tblUsers]
([username], [password])
VALUES ('user1', 'pass1'),
('user2', 'pass2')
Run Code Online (Sandbox Code Playgroud)
无论如何,我们有一个超过 500 万行的表,并且即将导入一些数据,但是大约 75% 的数据被复制的可能性很高(我们从多个来源购买数据,但它们共享大约 30-40% 的数据)我们的每个来源:/)。
如果我对列执行唯一约束,则从该点开始整个插入都会失败(当然,除非包含在事务中)。
我只是不知道如何有效地做到这一点以及如何使用可以重用的代码。
为什么要直接插入 tblusers 呢?
我总是使用临时表。您当然可以使用 SSIS 来获得更复杂的相同结果
INSERT INTO [staging].[Users]
([username], [password])
VALUES ('user1', 'pass1'),
('user2', 'pass2')
INSERT INTO [tblUsers]
([username], [password])
SELECT DISTINCT [username], [password] --edit, added DISTINCT
FROM [staging].[Users] SU
WHERE NOT EXISTS (SELECT * FROM [tblUsers] U WHERE ...)
Run Code Online (Sandbox Code Playgroud)