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 (
     ......) 

  • 相关阅读:
    js判断值是否为数字
    人脸识别 python调用face++ 功能测试
    【转载】Cesium基础使用介绍
    数据分析R&Python-Rpy2包环境配置
    VR/AR软件—Mirra测试(截至2017/11/13),使AR/VR创作更加便捷
    Cesium左右立体视觉续篇——遗留问题(渲染错误)以及临时替代方案
    在CesiumVR基础上实现3D左右立体视觉
    关于css样式的选择问题
    圣杯布局和双飞翼布局
    冒泡排序法
  • 原文地址:https://www.cnblogs.com/qiny/p/2993791.html
Copyright © 2011-2022 走看看