我正在使用以下脚本将100,000条记录插入表中。基本上插入了从500,001到600,000的整数。我将整数转换为字符串并插入,因为这是我想要在表中的方式(一个以字符串形式表示的整数)。我使用合并来检查记录是否已经存在。
DECLARE @first AS INT
SET @first = 500001
DECLARE @step AS INT
SET @step = 1
DECLARE @last AS INT
SET @last = 600000
BEGIN TRANSACTION
WHILE(@first <= @last)
BEGIN
MERGE dbo.Identifiers As target
USING (SELECT CAST(@first as varchar(10)) AS Identifier) AS source
ON (source.Identifier = target.Identifier)
WHEN NOT MATCHED THEN
INSERT (Identifier)
VALUES (source.Identifier);
SET @first += @step
END
COMMIT TRANSACTION
加载需要超过2分钟的时间。我做错了什么,但是无法找出原因。 注:该表在标识列上有唯一的非聚集索引。