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

sql server 通用修改表数据存储过程的更多相关文章

  1. SQL Server 中树形表数据的处理总结

    -- 使用函数的方法: --建立 演示环境 if object_id('tb_bookInfo') is not null drop table tb_bookInfo go ),type int) ...

  2. SQL Server 创建 修改 删除数据表

    1. 图形界面方式操作数据表 (1)创建和修改数据表 列名中如果有两个以上单词时,最好用下划线连接,否则可能会给将来的查询维护带来不便.我们公司美国佬做的数据库就很烦,所有列名都有空格,一旦忘记用方括 ...

  3. 解决SQL server 2014 修改表中的字段,无法保存的问题。

    修改PROJECT表中的字段,保存时,弹出上面的窗体,无法保存. 解决方法为:[工具]->[选项]->[设计器]中,去掉“阻止保存要求重新创建表的更改”前的勾选.

  4. sql server 清空数据库表数据

    --禁用外键约束 exec   sp_msforeachtable   'alter   table   ?   nocheck   constraint   all ' --清空数据 truncat ...

  5. sql server 删除所有表和存储过程

    1.删除外键约束 DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] drop constraint ...

  6. SQL Server 2008 修改表名

     有一张表  修改起 if exists (select * from sys.objects where object_id = object_id(N'Table_1') and type in ...

  7. SQL SERVER批量修改表名前缀

    比如前缀由mms_修改为 ets_ exec   sp_msforeachtable     @command1='  declare   @o   sysname,@n   sysname     ...

  8. SQL Server 2008 修改表所有者,架构

    ALTER SCHEMA 新架构 TRANSFER 旧架构.对象名称

  9. 转:Sql Server中清空所有数据表中的记录

    如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍.   使用sql删除数据库中所有表是不难的 ...

随机推荐

  1. LAMP环境快速搭建

    1.安装httpd [root@localhost httpd]# yum -y install httpd #安装httpd [root@localhost httpd]# chkconfig ht ...

  2. MyBatis源码解析(二)——Environment环境

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6625612.html 本应该先开始说Configuration配置类的,但是这个类有点过于 ...

  3. Jenkins结合.net平台工具之Msbuild

    前面我们讲解了关于Jenkins的一些基本知识,通过这些知识我们可以结合一些其它工具实现更为复杂的任务,本篇我们将介绍如何使用msbuild工具结合Jenkins实现构建一个.net控制台框. 首先我 ...

  4. vue开发中vue-resource + canvas 图片压缩、上传、预览

    1.使用vue-resource上传,也可以自定义ajax上传: 2.使用<input type="file" @change="submit()" na ...

  5. 玩儿虫那些事(四)—— 使用curl

    目录 一.爬一个简单的网站 二.模拟登录新浪 三.各种请求的发送 四.使用curl 五.模拟登录QQ空间 六.selenium的使用 七.phantomjs的使用 八.开源框架webmagic 九.开 ...

  6. Git合并指定文件到另一个分支

    经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...

  7. Flask 系列之 Pagination

    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 实现当前登录用户的事务浏览.添加.删除 操作 实现 首先 ...

  8. React之todo-list

    基于React的一个简单Todo-list 先赌为快:在线DEMO,感觉还不错点一下star  -_- ~ 源码地址: 一.已经完成的功能 1.新增选项(默认未完成) 2.完成状态可以切换 3.当前选 ...

  9. 虚拟机与Docker有何不同?

    译者按: 各种虚拟机技术开启了云计算时代:而Docker,作为下一代虚拟化技术,正在改变我们开发.测试.部署应用的方式.那虚拟机与Docker究竟有何不同呢? 原文: Comparing Virtua ...

  10. 现在有两个变量,分别是a = 3, b = 4,那么我们不用第三个变量来调换a和b的值。

    现在有两个变量,分别是a = 3, b = 4,那么我们不用第三个变量来调换a和b的值. <!DOCTYPE html><html><head>    <me ...