22,209
社区成员
发帖
与我相关
我的任务
分享
万能修改,删除表的存储过程
修改的
create Procedure up
@table varchar(50), --表名
@zid varchar(50), --字段
@value varchar(100), --要更改的字段的值
@zhi varchar(50) --更改条件
as
begin
exec('update ' +@table+ ' set ' +@zid+'='+@value+ ' where ' +@zid+'='+@zhi)
end
删除的
create proc del
@table varchar(50),
@zid varchar(50),
@zhi varchar(50)
as
begin
exec('delete '+@table+' where '+@zid+'='+@zhi)
end
CREATE PROC All_DBHelper_Add
@tablename VARCHAR(20),
@valueStr VARCHAR(300)
AS
BEGIN
DECLARE @str VARCHAR(300)
SET @str='insert into '+@tablename+' values('+@valueStr+')'
EXEC(@str)
END
EXEC dbo.All_DBHelper_Add 'testinfor', '''张三'',12'
SELECT * FROM testinfor
EXEC All_DBHelper_Add 'testinfor', ' ''小红'',''20'' '
这样应该是可以, 你少了单引号。
不过不推荐这样做。
写程序不要怕麻烦, 这样“万能”, 表面上省了一点事, 实际带来的麻烦更大。
兼容就是损耗, 什么都能其实就是等于都不能。
这样有安全问题, 如果插入的字符串里有单引号会异常, 问题多多。
还是一个表一个存储过程吧, 尽量不要搞什么动态SQL