SQL server 存储过程语法大全

  • 格式:docx
  • 大小:19.38 KB
  • 文档页数:12

下载文档原格式

  / 19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL server 存储过程语法大全

SQLSERVER存儲過程的寫法格式規格

*****************************************************

*** author:Susan

*** date:2005/08/05

*** expliation:如何寫存儲過程的格式及例子,有游標的用法!

*** 本版:SQL SERVER 版!

******************************************************/ 在存儲過程中的格式規格:

CREATE PROCEDURE XXX

參數1,

參數2……………

As

Declare

參數1,

參數2……………

Set參數1的初始值

Set參數2的初始值…………

Begin trascation

Commit trascation

Return

下面是一個例子

CREATE PROCEDURE TEST_2

@strTO VARCHAR(3)

AS

DECLARE

@strUNIT_NAME VARCHAR(800), @strSQL VARCHAR(8000),

@Link VARCHAR(1),

@Link1 VARCHAR(1)

SET @strUNIT_NAME=''

SET @strSQL=''

SET @Link=''

SET @Link1=''

BEGIN TRANSACTION

IF @strTO<>''

BEGIN

UPDATE UNIT SET UNIT_NAME=REPLACE(UNIT_NAME,'*','') WHERE

UNIT_CODE=@strTO

END

ELSE

BEGIN

UPDATE UNIT SET UNIT_NAME=UNIT_NAME+'*' WHERE UNIT_CODE='011'

END

IF @strTO<>''

BEGIN

declare db cursor for --必需聲明在查詢的前面

SELECT UNIT_NAME FROM UNIT WHERE LEFT(UNIT_CODE,2)=LEFT(@strTO,2)---取到相關信息

END

ELSE

BEGIN

declare db cursor for --必需聲明在查詢的前面

SELECT UNIT_NAME FROM UNIT WHERE LEFT(UNIT_CODE,2)=LEFT('011',2)---取到相關信息

END

open db ---開起取到的信息

fetch next from db into @strUNIT_NAME ---把第一筆放入@strUNIT_NAME中while @@fetch_status = 0 ---表示存在本筆資料

BEGIN ----開始循環

set @strSQL =@strSQL+@Link1+@Link+ @strUNIT_NAME ----設定保存的值fetch next from db into @strUNIT_NAME ----進行下次循環

SET @Link=CHAR(13) +CHAR(10)

SET @Link1=','

END ----結束循環

close db ---關閉信息

deallocate db ---移除資料指標參考

SELECT @strSQL

COMMIT TRANSACTION

RETURN如果循环insert的例子

DECLARE @strLoginID VARCHAR(16)

BEGIN

declare db cursor for

SELECT LoginID FROM dbo.s_Users WHERE len(UnitCoding) in(9,12)

END

open db

fetch next from db into @strLoginID

while @@fetch_status = 0 BEGIN

insert into s_P_User

select @strLoginID,LevelID from s_P_User where LoginID = 'aa'

fetch next from db into @strLoginID

END

close db

deallocate db一、TRUNCATE

二、Select INTO 建表

把一个表中的数据复制到另外一个表中。

三、Insert INTO Select

四、补充:临时表

临时表存储在系统数据库tempdb中

临时表会被系统隐式地丢弃

---------------------------------------------------------

五、存储过程(**)

一、简介:

存储过程(Stored Procedure),是一组为了完成特定功能的SQL 语句,集经编译后

存储在数据库中,用户通过指定存储过程的名字并给出参数,如果该存储过程带有参数来执行

它,

在SQL Server 的系列版本中,存储过程分为两类:系统提供的存储过程和用户自定义存储过程

系统SP,主要存储master 数据库中,并以sp_为前缀并且系统存储过程主要是从系统表中获取