通过一个存储过程,删除一个表中的记录。
存储过程的输入参数为表名,字段名,值。
create proc p_test
@tbl nvarchar(40),
@field nvarchar(40),
@value nvarchar(40)
as
delete from @tbl where @field=@value
go编译不通过,存储过程中的delete语句有问题。不知道该如何写?
存储过程的输入参数为表名,字段名,值。
create proc p_test
@tbl nvarchar(40),
@field nvarchar(40),
@value nvarchar(40)
as
delete from @tbl where @field=@value
go编译不通过,存储过程中的delete语句有问题。不知道该如何写?
create table tb(id int,col nvarchar(20))
insert into tb select 1,'aaaa' union select 2,'bbbb' union select 3,'cccc'
go
create proc p_test
@tbl nvarchar(40),
@field nvarchar(40),
@value nvarchar(40)
as
declare @sql nvarchar(4000)
set @sql='delete from '+@tbl+' where '+@field+'='''+@value+''''
exec(@sql)
go
exec p_test 'tb','col','bbbb'
select * from tb
go
drop proc p_test
drop table tb
/*
id col
----------- --------------------
1 aaaa
3 cccc(2 行受影响)
*/