22,209
社区成员
发帖
与我相关
我的任务
分享
create proc dbo.tbaa
as
begin tran
select top 100 * into #a from splsk(nolock)
delete from splsk with(xlock,paglock) where plh in(select top 100 plh from splsk(nolock))
select * from #a
drop table #a
commit tran
go
exec dbo.tbaa
/*
(100 行受影响)
(100 行受影响)
(100 行受影响)
*/
表名你改了没有splsk是我数据库中的表!
create proc dbo.tba
as
BEGIN TRAN
SELECT TOP 100 * into #a FROM table1(nolock)
DELETE FROM table1 WITH (xlock, paglock) WHERE id IN(SELECT TOP 100 id FROM table1(nolock))
select * from #a
drop table #a
COMMIT TRAN
GO
create proc dbo.tba
as
begin tran
select top 100 * into #a from splsk(nolock)
delete from splsk with(xlock,paglock) where plh in(select top 100 plh from splsk(nolock))
select * from #a
drop table #a
commit tran
go
Quote=引用 10 楼 soft_wsx 的回复:]
SQL codecreateproc dbo.tbaasselecttop100*into #afrom splskdeletefrom splskwhere plhin(selecttop100 plhfrom splsk)select*from #adroptable #adeclare@spnvarchar(100)set@sp=N'splsk'select*from@spgoexec db¡
[/Quote]
create proc dbo.tba
as
begin tran
select top 100 * into #a from splsk(nolock)
delete from splsk with(xlock,paglock) where plh in(select top 100 plh from splsk(nolock))
select * from #a
drop table #a
commit tran
go
楼主可以模拟一下!在CMD中调用批处理create proc dbo.tba
as
select top 100 * into #a from splsk
delete from splsk where plh in(select top 100 plh from splsk)
select * from #a
drop table #a
declare @sp nvarchar(100)
set @sp=N'splsk'
select * from @sp
go
exec dbo.tba
用存储过程吧!
delete from tb where id in (select top 100 id from tb)
delete top(100) from tb -- where ... order by ...