zoukankan      html  css  js  c++  java
  • 存储过程

    我是.net菜鸟。

    写存储过程之前应该先判断数据库里是否有此存储过程,有就删掉。

    IF EXISTS (SELECT * FROM dbo.sysobjects where id = object_id(N'ProcedureName') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
    DROP PROCEDURE ProcedureName
    GO

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    上面两段语句只是为了使sqlserver遵从 SQL-92 规则。

    接下来可以写一段注解,描述一下这个存储过程是为了干什么,是谁写的,什么时候写的等等。这个只是为了想以后的人解释一下而已,也可以不写。

    现在开始正式创建一个存储过程。

    CREATE PROCEDURE ProcedureName
        @parameter1 INT,
        @parameter2 varchar(25) READONLY,
        @parameter3 varchar(25) READONLY
    AS
    BEGIN

    上面写的是创建一个存储过程, 存储过程的名字是ProcedureName,有三个参数。

    其实存储过程就像是我们一个自定义的方法,存储过程里的参数就像是调用方法时所传递的参数,只是自定义的方法是用来对代码进行操作,而存储过程是对数据库进行操作而已。

    接下来要写的就是你对数据库的操作了,是查询一些数据,还是删除一些数据等等。

    最后加上

    END

    GO

    整个存储过程就结束了。

    我随便写一个例子。

    IF EXISTS (SELECT * FROM dbo.sysobjects where id = object_id('GetAdminName') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
    DROP PROCEDURE GetAdminNameGO

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    /*
    <storedproc name="GetAdminName" version = "1.00">

    <summary> This proc is used to get Admin name</summary>

    <returns type="INT">
    </returns>

    <histories>
     <history author="某某某" date="02/18/2013">
      Original Creation 
     </history>   
    </histories>

    <example>

    </example>

    <remarks>

    </remarks>

    <implementation/>
    <signature/>
    */

    CREATE PROCEDURE GetAdminName
        @Admin_Id INT   

    AS
    BEGIN

    -- User

    SELECT name

    FROM

    USER

    WHERE AdminId=Admin_Id

    END

    GO

    上面是一个非常简单的存储过程。好了。

    下面来说一说Merge

    MERGE BookBorrowList AS TARGET
    USING Student AS SOURCE
     ON (TARGET.StudentId= SOURCE.StudentId)
    WHEN MATCHED THEN
     UPDATE SET
      TARGET.bookStaus='Borrowed' 

    WHEN NOT MATCHED BY TARGET THEN
     INSERT (
       .......)

     VALUES (
     ......) 

  • 相关阅读:
    分布式的并行计算技术
    深入学习 jQuery 选择器系列第三篇——过滤选择器之索引选择器
    JavaScript--我所理解的原型链
    JavaScript--我所理解的闭包
    JavaScript--函数的形参和函数内部声明的变量或函数重名时的问题
    JavaScript--substring 和 substr 方法手记
    CSS 和 CSS3 中的 background
    CSS3的 border-radius 和 box-shadow 及 text-shadow
    CSS3-渐变这个属性
    CSS中的伪类和伪元素回顾
  • 原文地址:https://www.cnblogs.com/qiny/p/2993791.html
Copyright © 2011-2022 走看看