博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server 通用修改表数据存储过程
阅读量:6190 次
发布时间:2019-06-21

本文共 1441 字,大约阅读时间需要 4 分钟。

ALTER PROC [dbo].[UpdateTableData]@TableName VARCHAR(255),@SearchField VARCHAR(255),@SearchValue VARCHAR(255),@WhereField VARCHAR(255),@WhereValue VARCHAR(255)AS BEGINDECLARE @sql VARCHAR(255)DECLARE @xtype INT=0SET @sql ='UPDATE '+@TableName;  --获取SqlServer中表结构 SELECT @xtype=syscolumns.xtypeFROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id(@TableName)and  syscolumns.name=@SearchFieldIF(@xtype=NULL)RAISERROR ('查询字段不存在', 16, 1)SET @sql=@sql+' SET '+@SearchField+'=';IF(@xtype=48 OR @xtype=52 OR @xtype=56 OR @xtype=62OR @xtype=127)BEGINSET @sql=@sql+@SearchValue;ENDELSE IF(@xtype=35OR @xtype=99 OR @xtype=167 OR @xtype=175 OR @xtype=231 OR @xtype=239)BEGINSET @sql=@sql+''''+@SearchValue+'''';ENDELSERAISERROR ('数据类型错误', 16, 1)SET @xtype=0SELECT @xtype=syscolumns.xtypeFROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id(@TableName)and  syscolumns.name=@WhereFieldIF(@xtype=0)BEGINRAISERROR ('修改字段不存在', 16, 1)ENDSET @sql=@sql+' WHERE '+@WhereField+'='IF(@xtype=48 OR @xtype=52 OR @xtype=56 OR @xtype=62OR @xtype=127)BEGINSET @sql=@sql+@WhereValue;ENDELSE IF(@xtype=35OR @xtype=99 OR @xtype=167 OR @xtype=175 OR @xtype=231 OR @xtype=239)BEGINSET @sql=@sql+''''+@WhereValue+'''';ENDELSERAISERROR ('数据类型错误', 16, 1)EXEC (@sql)END
 exec UpdateTableData '表名','修改字段','修改值','条件字段','条件值' 

转载于:https://www.cnblogs.com/RambleLife/p/9830814.html

你可能感兴趣的文章
webView实现网页缩放
查看>>
C语言 16进制转float
查看>>
在Leangoo里怎么创建看板,更改看板名称?
查看>>
编写自己的Windows Live Writer插件
查看>>
Linux shell 数组
查看>>
a标签绝对定位,点击区域被图片遮挡(IE下)
查看>>
js装饰者模式
查看>>
STANDBY REDO LOG
查看>>
mssql 获取自增列起始及增量
查看>>
Cookie和Session有什么区别?
查看>>
gulp(基础篇)
查看>>
关于 MRC 开发中的一些细节
查看>>
NSOJ 一个人的旅行(图论)
查看>>
微信公众号(静默授权和分享)
查看>>
Grunt
查看>>
博客园我来了!
查看>>
iOS-----用LLDB调试,让移动开发更简单(二)
查看>>
iOS-绘制UIView之drawCGRect
查看>>
解决“/bin/bash^M: bad interpreter: No such file or directory”
查看>>
js定时相关函数:
查看>>