• 存储过程——创建通用存储过程(七)


    • 目标
    1. 实现简单的数据库编程
    2. 实现通用的删除功能
    3. 实现通用的修改功能
    • 通用删除和通用修改 实现思路
    1. 普通删除功能

        根据某个条件删除某个表信息,通常如:根据主键删除新闻表信息某条数据,根据主键删除用户表某条数据

      分析:

        如果要实现通用的删除功能,只需要编写一个存储过程,传入要删除的表名和删除的条件即可,拼接一个sql语句,最后执行这个sql语句,实现通用的删除功能

    • 通用修改功能实现思路
    1. 普通修改:一个表就需要写一个存储过程去实现修改功能

      分析:

       是否可以直接将表名,修改的列名,修改的条件作为参数,拼接一个sql语句,最后执行这个sql语句,实现通用的修改功能

    • 执行sql语句

     EXEC(@sql)

    通用删除功能如下

    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: 2014年4月12日 23:04:30
    -- Description:    <通用删除>
    -- =============================================
    CREATE PROCEDURE DelTable]    
    @tablename nvarchar(100),--表名 @condition nvarchar(200)--查询条件 AS BEGIN --拼接sql DECLARE @sql nvarchar(1000) SET @sql='Delete from '+@tablename+' where '+@condition EXEC(@sql) END

    测试打印sql如下
    Delete from userinfo where 3

    在t-sql界面操作调用格式如下

    EXEC DelTable 'userinfo','id=6'

    通用修改功能如下

    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <2014年4月12日 23:33:39
    -- Description:    通用修改
    -- =============================================
    CREATE PROCEDURE UpdateTable
        @tablename nvarchar(100),
        @columns nvarchar(200),
        @condition nvarchar(500)
    AS
    BEGIN
        DECLARE @sql nvarchar(1000)
        SET @sql='update '+@tablename+' set '+@columns+' where '+ @condition
        EXEC(@sql)
    END
    GO

    在界面调用如下

    EXEC [dbo].[UpdateTable] 'userinfo','age=24','id=1'

    通用查询功能如下

    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: 2014年4月13日 00:07:44
    -- Description:    查询
    -- =============================================
    CREATE PROCEDURE QueryTable 
        @tablename nvarchar(100),
        @column nvarchar(200),
        @condition nvarchar(300)
    AS
    BEGIN
        DECLARE @sql nvarchar(1000)
        SET @sql='select '+@column+ ' from '+@tablename+' where 1=1'+@condition
        EXEC(@sql)
    END
    GO

    调用

    EXEC [dbo].[QueryTable] 'userinfo','*',''
  • 相关阅读:
    docker搭建mongodb
    mongodb的搭建
    Mysql错误:Ignoring query to other database解决方法
    BZOJ4567:[SCOI2016]背单词——题解
    BZOJ4570:[SCOI2016]妖怪——题解
    BZOJ4753:[JSOI2016]最佳团体——题解
    BZOJ1853:[SCOI2010]幸运数字 & BZOJ2393:Cirno的完美算数教室——题解
    LOJ6388:[THUPC2018]赛艇——题解
    BZOJ5217:[Lydsy2017省队十连测]航海舰队——题解
    BZOJ4259:残缺的字符串——题解
  • 原文地址:https://www.cnblogs.com/tuqun/p/3661652.html
Copyright © 2020-2023  润新知