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

  • 目标
  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','*',''
原文地址:https://www.cnblogs.com/tuqun/p/3661652.html