查询表数据通用存储过程

set ansi_nulls on
go
set quoted_identifier on
go

alter proc [dbo].[searchtabledata]
@tablename varchar(255),
@fields varchar(255),
@wherefield varchar(255),
@wherevalue varchar(255)
as 
begin
declare @sql varchar(255)
declare @xtype int=0
set @sql ='select '+@fields+' from '+@tablename;
select @xtype=syscolumns.xtype
from syscolumns, systypes 
where syscolumns.xusertype = systypes.xusertype 
and syscolumns.id = object_id(@tablename)and  syscolumns.name=@wherefield
if(@xtype=0)
begin
raiserror ('修改字段不存在', 16, 1)
end
set @sql=@sql+' where '+@wherefield+'='
if(@xtype=48 or @xtype=52 or @xtype=56 or @xtype=62or @xtype=127)
begin
set @sql=@sql+@wherevalue;
end
else if(@xtype=35or @xtype=99 or @xtype=167 or @xtype=175 or @xtype=231 or @xtype=239)
begin
set @sql=@sql+''''+@wherevalue+'''';
end
else
raiserror ('数据类型错误', 16, 1)
exec (@sql)
end 
exec searchtabledata '表名','*','countid','1'

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐