表结构
TextLast number varchar(50)
B_black col001 varchar(50)
存储过程的作用 删除TextLast 中 number = col001 的所有的记录
因为类似B_black的表很多,所以建一个存储过程
go
create proc operdata( @tb_name nvarchar(100),@ncounts int out)
as
begin
declare @ncount int
declare @sql nvarchar(4000)
set @sql='select @ncount = count(*) from TextLast where TextLast.number in (select number from TextLast a, '+@tb_name+' b where a.number = b.col001) '
exec sp_executesql @sql,N'@ncount int out',@ncount out
if(@ncount!=0)--如果没有符合条件的记录,就不用执行下面的删除
begin
set @sql='delete from TextLast where TextLast.number in (select number from TextLast a, '+@tb_name+' b where a.number = b.col001)'
exec sp_executesql @sql
set @ncount=@@ROWCOUNT
end
set @ncounts=@ncount
end
创建成功
declare @n int
exec [operdata](N'B_black',@n out)
执行的时候出错了
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: 'B_133black' 附近有语法错误。