【发布时间】:2015-02-13 15:11:37
【问题描述】:
我在 SQL Server 中有一个存储过程,用于从其中一个表中删除重复项。
此存储过程使用游标。
我尝试通过将“CREATE PROCEDURE”替换为“CREATE PROC”来在 Microsoft Access 中创建相同的存储过程,但它似乎不起作用。
谁能提供一些解决方法?
这是 SQL Server 存储过程:
ALTER PROCEDURE [dbo].[csp_loginfo_duplicates]
AS
BEGIN
SET NOCOUNT ON;
declare @minrowid bigint
declare @empid nvarchar(15)
declare @dtpunched datetime
declare @count tinyint
declare curDuplicate cursor for
select empid,dtpunched,count(*),min(row_id) from loginfo
group by empid,dtpunched
having count(*)>1
open curDuplicate
fetch next from curduplicate into @empid,@dtpunched,@count,@minrowid
while (@@fetch_status=0)
begin
delete from loginfo where empid=@empid and dtpunched=@dtpunched and row_id<>@minrowid
fetch next from curduplicate into @empid,@dtpunched,@count,@minrowid
end
close curDuplicate
deallocate curDuplicate
END
【问题讨论】:
-
删除重复项是您只需要做一次,还是必须是一项重复性任务?
-
在访问中 loginfo 是本机表而不是链接。我不需要定期删除重复项。只是偶尔一次。现在我正在研究另一个项目,一旦我再次开始工作,我会征求你的意见。你一直很有帮助。非常感谢!
标签: ms-access stored-procedures