【重构】存储过程

             重构组合查询中我调用了存储过程,这是我第一次用自己编写的存储过程,也真正见识到它的风采。

         存储过程其实就是我们将我们要使用的查询语句事先写到我们的数据库中,当我们使用的时候直接调用存储过程的名字就可以了。这样很方便快捷,减少了工作量。

        使用过程:

        如图所示:


1、连接你的数据库,右击“存储过程”,选择“新建存储过程”       

2、以组合查询为例,添加以下代码:

<strong><span style="font-size:18px;">USE [System]
GO
/****** Object:  StoredProcedure [dbo].[Proc_GroupQuery]    Script Date: 05/30/2015 17:22:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Proc_GroupQuery]

    @cmbField1 varchar(10),  
    @cmbOperation1 varchar(10),  
    @txtContent1 varchar(10),  
    @cmbField2 varchar(10),  
    @cmbOperation2 varchar(10),  
    @txtContent2 varchar(10),  
    @cmbField3 varchar(10),  
    @cmbOperation3 varchar(10),  
    @txtContent3 varchar(10),  
    @cmbRelation1 varchar(10),  
    @cmbRelation2 varchar(10),  
    @tableName varchar(20)  
AS  
    declare @TempSql varchar(500)--临时存放sql语句    
BEGIN  
    SET @TempSql='SELECT * FROM '+@tableName +' WHERE ' +@cmbField1 +@cmbOperation1+char(39) + @txtContent1 + char(39)    
    if @cmbRelation1 != ''  
    BEGIN    
        SET @TempSql=@TempSql+@cmbRelation1+CHAR(32)+@cmbField2 +@cmbOperation2+CHAR(39)+@txtContent2+CHAR(39)    
        if @cmbRelation2!= ''  
        BEGIN    
        SET @TempSql=@TempSql+@cmbRelation2+CHAR(32)+@cmbField3+@cmbOperation3+CHAR(39)+@txtContent3+CHAR(39)    
        END    
    END    
EXECUTE(@TempSql)   
END</span></strong>
3、如果提示[dbo].[Proc_GroupQuery]无效。

      原因是你没有创建,可以添加如下代码:

<strong><span style="font-size:18px;">if object_id('[dbo].[Proc_GroupQuery]') is not null
drop proc [dbo].[Proc_GroupQuery]
go
create proc [dbo].[Proc_GroupQuery]……</span></strong>

       存储过程真的很实用,以后和它会越来越亲密的……



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值