有没有遇到过在一个没有主键标志的表里存了重复的数据行,要把重复的行删掉保留一行的情况呢?我们可以设置SQL Server的ROWCUNT变量来限制影响的数据行数,默认的数据值是0,代表所有行,但是这个值可以在运行SQL语句之前进行设定。
咱们首先建个测试用的表,插入几条条记录。
CREATE TABLE dbo.duplicateTest
(
[ID] [INT] ,
[FirstName] [VARCHAR](25) ,
[LastName] [VARCHAR](25)
)
ON [PRIMARY];
INSERT INTO dbo.duplicateTest VALUES(1, 'Bob','Smith')
INSERT INTO dbo.duplicateTest VALUES(2, 'Dave','Jones')
INSERT INTO dbo.duplicateTest VALUES(3, 'Karen','White')
INSERT INTO dbo.duplicateTest VALUES(1, 'Bob','Smith')
INSERT INTO dbo.duplicateTest VALUES(2, 'Dave','Jones')
INSERT INTO dbo.duplicateTest VALUES(1, 'Bob','Smith')