zoukankan      html  css  js  c++  java
  • 如何编写数据库存储过程?

    在程序设计的时候,出于安全、效率和扩展性方面的考虑,我们会把很多数据操作都封装为存储过程。

    存储过程是已保存的 Transact-SQL 语句集合,或对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用,可接收并返回用户提供的参数。可以创建过程供永久使用,或在一个会话(局部临时过程)中临时使用,或在所有会话(全局临时过程)中临时使用。

    启动 SQL Server 的一个实例时,也可以创建并自动运行存储过程。

    存储过程现在可以利用T-SQL和托管代码两种方式编写。下面我们主要看看如何使用T-SQL语句快速地编写存储过程

    我们来看一下基本语法

    CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ]     [ { @parameter [ type_schema_name. ] data_type }         [ VARYING ] [ = default ] [ OUT | OUTPUT ]     ] [ ,...n ] 
    [ WITH <procedure_option> [ ,...n ] ]
    [ FOR REPLICATION ] 
    AS { <sql_statement> [;][ ...n ] | <method_specifier> }
    [;]
    <procedure_option> ::=      [ ENCRYPTION ]     [ RECOMPILE ]     [ EXECUTE_AS_Clause ]
    
    <sql_statement> ::= 
    { [ BEGIN ] statements [ END ] }
    
    <method_specifier> ::=
    EXTERNAL NAME assembly_name.class_name.method_name
    但是,是不是说我们真的要一个一个去编写呢?那样的确很繁琐,尤其对于业务逻辑不是很复杂的情况下。
    第一个方法:善用SQL SERVER自带的工具。以SQL Server 2005为例,我们可以通过SQL SERVER Management Studio的上下文菜单来生成代码
    image 

    INSERT INTO [OrderDB].[dbo].[OrderDetails]
               ([OrderID]
               ,[LineNumber]
               ,[ProductID]
               ,[UnitPrice]
               ,[Quantity])
         VALUES
               (<OrderID, int,>
               ,<LineNumber, tinyint,>
               ,<ProductID, int,>
               ,<UnitPrice, decimal(18,2),>
               ,<Quantity, int,>)

     

    稍加修改就可以变成一个存储过程(Insert操作)

    第二个方法:善用第三方工具。我这里推荐一个产品是CodeSmith,它有一个模板,可以在几秒钟之内为一个数据库所有表生成增删改查的存储过程
    image 
    image 
     
  • 相关阅读:
    重读金典------高质量C编程指南(林锐)-------第四章 表达式和基本语句
    重读金典------高质量C编程指南(林锐)-------第三章 命名规则
    重读金典------高质量C编程指南(林锐)-------第二章 程序的板式
    重读金典------高质量C编程指南(林锐)-------第一章 文件结构
    链表的基本操作---创建
    实现两个数的互换算法小结
    C++中引用与指针的区别
    以前写的一些小程序总结
    OPENCV中数字图像处理知识运用
    常见的论文查找办法
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1282966.html
Copyright © 2011-2022 走看看