zoukankan      html  css  js  c++  java
  • sql server 通用修改表数据存储过程

    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 '表名','修改字段','修改值','条件字段','条件值' 
  • 相关阅读:
    Android高性能ORM数据库DBFlow入门
    PHP数据库操作
    Smarty模板技术学习(二)
    Smarty模板技术学习
    微信开发简单实例
    支持IE6只是其一!Web开发的十大噩梦
    前端构建工具发展及其比较
    React通过redux-persist持久化数据存储
    vue中Axios的封装和API接口的管理
    yarn使用教程
  • 原文地址:https://www.cnblogs.com/RambleLife/p/9830814.html
Copyright © 2011-2022 走看看