sql server存储过程

来源:互联网 发布:手机编辑音频软件 编辑:程序博客网 时间:2024/05/16 05:26

1. 创建存储过程

使用CREATE PROC语句创建存储过程
语法格式:

CREATE PROC proc_name    [{@parameter data_type} [varying] [=default] [output]]    [,...n]AS sql_statement

CREATE PROC为创建存储过程的关键字
proc_name为存储过程名称,

@parameter为存储过程的参数,可以有多个参数
datatype为参数的数据类型
default为参数的默认值
output为存储过程的返回参数
AS指定该存储过程要执行的操作
sql_statement为存储过程执行的操作

StudentId Gender Age Birthday City 01 male 24 1988-05-30 Shanghai 02 female 22 1998-05-11 Beijing 03 male 18 1988-05-30 NULL
CREATE PROC first_proc@course_name varchar(7) 'Nick'ASSELECT * FROM course where 课程名称=@course_name

2.执行存储过程

2.1 通过EXEC执行存储过程

[EXEC]{    [{@return_status= ]    {module_name  [;number] |@module_name_var}    [[@parameter=] {value                        |@variable [OUTPUT]                        |[DEFAULT]}]    [,...n]    [WITH RECOMPILE]    AS sql_statement}@return_status

2.2 通过EXEC执行存储过程

EXEC proc_name

3.查看存储过程

系统中的每个存储过程都是一个object,都有object_id,definition等属性。

  • 使用sys.sql_modules查看存储过程的定义
    sys.sql_modules为系统视图,通过该视图可以查看数据库中的存储过程,
SELECT * FROM sys.sql_modules
  • 使用OBJECT_DEFINITION查看存储过程的定义
OBJECT_DEFINITION(object_id)

object_id为要使用对象的id,其类型为int,

SELECT OBJECT_DEFINITION(309576141)
  • 使用sp_helptext查看存储过程的定义
sp_helptext[@objname=]'name'[,@columnname=] computed_column_name

4. SET选项

SET ANSI_NULLS ONSET QUOTED_IDENTIFIER ON

当SET QUOTED_IDENTIFIER 为ON时,标识符可以由双引号分隔,文字必须由单引号分隔,当设置为OFF时,标识符不可加引号,同时必须符合T-SQL标识符规则。

当 SET QUOTED_IDENTIFIER 为 ON 时,由双引号分隔的所有字符串都被解释为对象标识符。因此,加引号的标识符不必遵守 Transact-SQL 标识符规则。它们可以是保留关键字,并且可以包含 Transact-SQL 标识符中通常不允许的字符。不能使用双引号分隔文字字符串表达式,而必须用单引号括住文字字符串。如果单引号 (‘) 是文字字符串的一部分,则可以由两个单引号 (”) 表示。当对数据库中的对象名使用保留关键字时,SET QUOTED_IDENTIFIER 必须为 ON。

当 SET QUOTED_IDENTIFIER 为 OFF(默认值)时,表达式中的文字字符串可以由单引号或双引号分隔。如果文字字符串由双引号分隔,则可以在字符串中包含嵌入式单引号,如省略号。

当在计算列或索引视图上创建或操作索引时,SET QUOTED_IDENTIFIER 必须为 ON。如果 SET QUOTED_IDENTIFIER 为 OFF,则计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的”使用 SET 语句时的注意事项”。

Transact-SQL 支持在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE。

当SET ANSI_NULLS 为ON时,

0 0
原创粉丝点击