配色: 字号:
第6章 Transact-SQL与存储过程
2022-06-07 | 阅:  转:  |  分享 
  
数据库原理及应用第6章Transact-SQL与存储过程本章内容一、Transact-SQL语言6.1脚本、批处理与注释符
6.2Transact-SQL的语言要素6.3Transact-SQL流程控制语句6.4基于T-SQL的数据库创建与管
理应用二、存储过程6.5存储过程第6章Transact-SQL与存储过程第一部分Transact-SQL语言为
了提高SQL的数据处理功能,增加更加灵活的控制功能,实现应用程序与SQLServer服务器的通信,SQLServer通过对
SQL的扩展,提供了Transact-SQL语言。第6章Transact-SQL与存储过程6.0认识Transact-SQL
语言一、SQL与Transact-SQLTransact-SQL(以下简称T-SQL)语言是Microsoft公司在SQLS
erver中对标准SQL语言的扩展。二、Transact-SQL的基本性能T-SQL(不仅)具有SQL的主要特点。?具有交互式
和嵌入式两种工作方式。T-SQL(而且)增加了变量、运算符、函数、流程控制和注释等(一般的程序)语言元素。?①流程控制语言
要素的增加,使得在实现基于交互式方式的批处理时,具有了灵活的控制功能;②运算符和函数语言要素的增加,使得T-SQL具有了数据处理
功能。三、Transact-SQL的扩充性能T-SQL(除了)提供强大的数据处理功能。可以(特别是)在C/S结构和B/S结构
的Web应用程序环境下,通过向服务器发送T-SQL语句,实现了应用程序与SQLServer服务器的通信。第6章Transac
t-SQL与存储过程6.1脚本、批处理与注释符本节介绍介绍的脚本、批处理和注释概念,构成了学习T-SQL语言的基础。一、
脚本1、脚本的概念脚本是一种以纯文本保存的,由一条一条的文字命令组成的程序{所以,脚本(程序)可以用记事本打开查看和编辑}。
脚本程序的执行实质上就是,由系统的一个解释器将其中的文字命令逐条地翻译成机器可识别的指令,并执行之。在SQLServer环境中
,脚本可以在查询分析器中被执行。一、脚本2、脚本(程序)的功用脚本能够将一个个的T-SQL命令组织起来,去实现一个完整的功能
目标。脚本程序中可以使用T-SQL语言的变量、分支、循环等控制语句,从而可以实现一些复杂的任务。一、脚本3、脚本(程序)与批
处理的关系脚本是批处理的存在方式,将一个或多个批处理组织到一起就可形成一个脚本。通过组织一系列的T-SQL命令并把它们编成脚本
,就会减低数据库管理的复杂性。一、脚本4、脚本文件将脚本保存到磁盘文件上就称为脚本文件。二、批处理1、批处理概念批处
理是一起提交给SQLServer执行的一个或多个T-SQL语句的集合。一个GO语句表示一个批处理的结束。T-SQL语句1
T-SQL语句2T-SQL语句3…T-SQL语句nGO二、批处理2、批处理的执行当批处理被提交到SQL
Server中时,它会被编译并创建一个执行计划(可执行单元):(1)如果在编译时出现语法错误,则执行计划不被创建,批处理中没有语
句被执行。(2)如果在创建执行计划之后发生运行时错误,批处理的执行就停止,但对遇到运行时错误的语句之前执行的语句不受影响。二
、批处理例6.1具有3个批处理和使用了两种类型注释的脚本的例子。程序清单:USEtest--打开test数据库GO--
多行(行内)注释的第一行--多行(行内)注释的第二行SELECTFROMSGO/(块)注释语句的第一
行.(块)注释语句的第二行./SELECTFROMSCGO--在T-SQL语言调试过程中使用注释语句
三、注释1、行内注释格式为:--注释文本说明:1)从双连字符“--”开始到行尾均为注释。2)注释可以单独位于一行;也
可以和执行代码同在一行,后者最好有几个“空白”字符相隔。三、注释2、块注释格式为:/注释文本/或/注释文本
/说明:“/”标志块注释的开始,“/”标志块注释的结束。块注释可以单独位于一行;也可以和执行代码同在一行,后者最好有几个“
空白”字符相隔。第6章Transact-SQL与存储过程6.2Transact-SQL的语言要素T-SQL语言是标准
SQL语言的扩展。由于T-SQL语言具有其它语言的共同特征,所以下面仅介绍T-SQL有别于其它语言的部分内容。一、常量
1、字符串常量字符串常量由字母、数字和符号组成,并包含在一对单引号内。2、数值常量数值常量分为二进制常量、bit常量、i
nt常量、decimal常量、float常量、real常量、money常量等。3、日期时间常量日期时间常量包含在一对单引号中
,可以只包含日期、制包含时间,或日期时间都包含。二、变量1、局部变量创建批处理时经常需要保存一些临时值,一般是为局部变量
指定值来保存这些临时值。SQL的局部变量是T-SQL批处理和脚本中可以保存数据值的对象。二、变量1)局部变量的定义dec
lare@<变量名><变量类型>[,@<变量名><变量类型>[,…]]其中:①变量类型可以是用户定义的数据类
型,也可以由系统提供的数据的数据类型。②局部变量在声明后但未赋值前,其值为NULL。二、变量2)局部变量的赋值方法S
ET@<变量名=表达式>或SELECT@<变量名=表达式><变量类型>[,…]FROM<表名>[WHER
E<条件语句>]说明:当变量的值是确切值或者是其它变量时,使用SET语句赋值;当变量赋值基于一个查询时,使用SELECT语句
赋值。二、变量例6.2查询学生关系表S中女同学的信息。USEJXGL--打开JXGL数据库GODECLARE@sex
CHAR(2)--声明局部变量SET@sex=''女''--根据局部变量值进行查询SELECTS#AS学号,
SNAMEAS姓名,SBIRTHINAS出生年月,PLACEOFBAS籍贯,SCODE#AS专业编号,C
LASSAS班级FROMSWHERESSEX=@sexGO二、变量例6.2查询学生关系表S中女同学的
信息。二、变量全局变量是一组特定的无参函数,其名称以@@开始,由SQLServer系统提供。用户不能定义全局变量,也不能
通过SET语句为全局变量赋值。一般是将全局变量的值赋给局部变量。二、变量表6.1T-SQL常用的全局变量名称功能
说明@@ERROR返回上一条T-SQL语句执行后的错误号,如无错误则返回0@@ROWCOUNT返回上一条T-SQL语句影响的数据行
数@@IDENTITY返回最后插入的标识值,作为最后INSERT或者SELECTINTO语句的结果@@FETCH_STATUS和
FETCH配合使用。返回0表示FETCH有效,%表示超出结果集,-2表示不存在该行@@TRANCOUNT返回活动事务的数量@@CO
NNECTIONS返回当前服务器连接的数目@@SERVICENAME返回正在运行SQLServer服务器所使用的登录表键名@@S
ERVERNAME返回脚本正在运行的本地服务器的名字注意:全局变量一般是系统返回的状态或特征参数值,对用户来说是只读的。三、表达
式与运算符SQLServer2012中,运算符主要有以下六大类:赋值运算符算术运算符位运算符比较运算符逻辑运算符
字符串串联运算符三、表达式与运算符表6.2T-SQL的运算符优先级优先级运算符类别功能说明1圆括号()2正、负、位非运算符
+,-,~3乘、除、取模运算符,/,%4加与连接、减、位与运算符+,-,&5比较运算符=,>,>=,<,<=,<>,!=,!>,
!<6位异或、位或运算符^,|7逻辑非NOT8逻辑与AND9逻辑或、查询逻辑运算符OR,LIKE,BETWEEN,IN,ANY,S
OME,ALL,EXISTS10赋值=四、Transact-SQL函数1、系统函数(1)第5章介绍的各种函数(2)典型的
数据类型转换函数:CAST函数语句格式为:CAST(expressionASdata_type)功能:将某种数据类型
的表达式expression的值,显式地转换为另一种数据类型data_type值。四、Transact-SQL函数例6.3按
学号分组查询每个学生的平均成绩,并按比如“200401001同学的平均成绩为88分”的格式显示每个学生的平均成绩。USE
JXGL--打开JXGL数据库GOSELECTS#+‘同学的平均成绩为‘+CAST(AVG(成绩)ASCHA
R(2))+''分''FROMSCGROUPBYS#GO四、Transact-SQL函数2、用户自定义函数
◆自定义函数是由一个或多个T-SQL语句组成的子程序。◆自定义函数的输入参数可以为零个或最多1024个,输入的参数能够是除
了时间戳、游标和表以外的其他变量。◆自定义函数可以像系统函数一样在查询或存储过程等程序段中使用,可以通过EXECUTE命令执行
。四、Transact-SQL函数2.用户自定义函数——的创建方式1)用CREATEFUNCTION语句创建标量函
2)用CREATEFUNCTION语句创建单语句表值函数3)用CREATEFUNCTION语句创建多语句表值函数
四、Transact-SQL函数1)用CREATEFUNCTION语句创建标量函数CREATEFUNCTION[o
wner_name.]function_name([{@parameter_name[AS]scalar_par
ameter_data_type[=default]}[,...n]])RETURNSscalar_re
turn_data_type[AS]BEGINfunction_bodyRETURNscalar_expressi
onEND注:是在查询分析器中创建用户自定义函数的名称四、Transact-SQL函数CREATEFUNCTION[
owner_name.]function_name([{@parameter_name[AS]scalar_p
arameter_data_type[=default]}[,...n]])RETURNSscalar_
return_data_type[AS]BEGINfunction_bodyRETURNscalar_expres
sionEND用户自定义函数的参数,可以是一个或多个四、Transact-SQL函数CREATEFUNCTION[
owner_name.]function_name([{@parameter_name[AS]scalar_pa
rameter_data_type[=default]}[,...n]])RETURNSscalar_r
eturn_data_type[AS]BEGINfunction_bodyRETURNscalar_express
ionEND自定义函数参数的类型四、Transact-SQL函数CREATEFUNCTION[owner_name.
]function_name([{@parameter_name[AS]scalar_parameter_dat
a_type[=default]}[,...n]])RETURNSscalar_return_data_
type[AS]BEGINfunction_bodyRETURNscalar_expressionEND四、T
ransact-SQL函数CREATEFUNCTION[owner_name.]function_name([{
@parameter_name[AS]scalar_parameter_data_type[=default]}
[,...n]])RETURNSscalar_return_data_type[AS]BEGINfunc
tion_bodyRETURNscalar_expressionEND用户自定义函数的返回值四、Transact-S
QL函数CREATEFUNCTION[owner_name.]function_name([{@paramete
r_name[AS]scalar_parameter_data_type[=default]}[,...n
]])RETURNSscalar_return_data_type[AS]BEGINfunction_body
RETURNscalar_expressionEND函数体,位于begin和end之间的一系列Transact-SQ
L语句四、Transact-SQL函数CREATEFUNCTION[owner_name.]function_nam
e([{@parameter_name[AS]scalar_parameter_data_type[=def
ault]}[,...n]])RETURNSscalar_return_data_type[AS]BE
GINfunction_bodyRETURNscalar_expressionEND函数返回值的表达式四、Tran
sact-SQL函数例6.4创建一个返回今天是一周的第几天的用户自定义标量函数。createfunctionget_w
eekday(@datedatetime)returnsintasbeginreturndatepart(week
day,@date)end四、Transact-SQL函数例6.4创建一个返回今天是一周的第几天的用户自定义标量函数
。createfunctionget_weekday(@datedatetime)returnsintasbeg
inreturndatepart(weekday,@date)end根据上述自定义函数,当执行语句:Selectdbo.
get_weekday(convert(datetime,''20110901'',101))有执行结果:四、Transact-
SQL函数例6.4创建一个返回今天是一周的第几天的用户自定义标量函数。四、Transact-SQL函数2)用CREATE
FUNCTION语句创建单语句表值函数CREATEFUNCTION[owner_name.]function_nam
e([{@parameter_name[AS]scalar_parameter_data_type[=defau
lt]}[,...n]])RETURNSTABLE[WITH{ENCRYPTION|SCHEMABIN
DING}][AS]RETURN(selectsentence)注:单语句表值函数用于返回一个Select语句查
询结果的表四、Transact-SQL函数2)用CREATEFUNCTION语句创建单语句表值函数CREATEFUN
CTION[owner_name.]function_name([{@parameter_name[AS]sca
lar_parameter_data_type[=default]}[,...n]])RETURNST
ABLE[WITH{ENCRYPTION|SCHEMABINDING}][AS]RETURN(selects
entence)ENCRYPTION关键字用于指定SQLServer加密包含CREATEFUNCTION语句文本的系统表列
,使用ENCRYPTION可以避免将函数作为SQLServer复制的一部分发布四、Transact-SQL函数2)用CRE
ATEFUNCTION语句创建单语句表值函数CREATEFUNCTION[owner_name.]function_
name([{@parameter_name[AS]scalar_parameter_data_type[=de
fault]}[,...n]])RETURNSTABLE[WITH{ENCRYPTION|SCHEMA
BINDING}][AS]RETURN(selectsentence)SCHEMABINDING关键字用于指定
将函数绑定到它所引用的数据库对象上四、Transact-SQL函数2)用CREATEFUNCTION语句创建单语句表值函
数CREATEFUNCTION[owner_name.]function_name([{@parameter_n
ame[AS]scalar_parameter_data_type[=default]}[,...n]])
RETURNSTABLE[WITH{ENCRYPTION|SCHEMABINDING}][AS]RETUR
N(selectsentence)代表一个SELECT查询语句四、Transact-SQL函数例6.5创建一个自定义
函数,用于返回某班的学生关系表。USEJXGLGOCREATEFUNCTIONs_table(@class1VA
RCHAR(7))RETURNSTABLEASRETURN(selectfromSwhereCLASS=@c
lass1)GO四、Transact-SQL函数3)用CREATEFUNCTION语句创建多语句表值函数CREATE
FUNCTION[owner_name.]function_name([{@parameter_name[AS
]scalar_parameter_data_type[=default]}[,...n]])RETUR
NS@local_varibleTABLE[AS]BEGINfunction_bodyRETURNscala
r_expressionEND注:多语句表值型函数是标量函数和单语句函数的结合体,该函数返回的是一个表,可以进行多次查询。
四、Transact-SQL函数3)用CREATEFUNCTION语句创建多语句表值函数CREATEFUNCTION
[owner_name.]function_name([{@parameter_name[AS]scalar_p
arameter_data_type[=default]}[,...n]])RETURNS@local
_varibleTABLE[AS]BEGINfunction_bodyRETURNscalar_expressi
onEND为T-SQL中的局部变量第6章Transact-SQL与存储过程6.3Transact-SQL流程控制语句
流程控制语句是指那些用来控制程序执行和流程分支的语句。在SQLServer2012中,流程控制语句主要用来控制SQL
语句、语句块或者存储过程的执行流程。一、BEGIN…END语句语句格式:BEGIN{?|??L语句块>}功能:利用BEGIN…END将多条T-SQL语句组合成一个语句块,并将它们视为一条语句。二、IF…ELSE语句
语句格式:IF?<逻辑表达式>?|?BEGIN??END[ELSE
?|?BEGIN??END]注意:条件不能写成:if@var=NULL必须写成:if@varI
SNULL三、CASE语句1、简单CASE语句CASE?<测试表达式>WHEN?<测试值1>?THEN?<结果表达
式1>WHEN?<测试值2>?THEN?<结果表达式2>[ELSE?<结果表达式n>]END其中,测试表达式可以是局部变量
,也可以是表中的字段变量名,还可以是一个用运算符连接起来的表达式。三、CASE语句1、搜索CASE语句CASEWHEN
?<逻辑表达式1>?THEN?<结果表达式1>WHEN?<逻辑表达式2>?THEN?<结果表达式2>[ELSE?<结果表达式n
>]END注意:当有多个逻辑表达式的值为TRUE时,只返回第一个为TRUE的THEN子句后的结果表达式的值。如果不选择ELSE
子句,则当前面的逻辑表达式的值都不为TRUE时,返回一个NULL值。四、WHILE语句语句格式:WHILE?<逻辑表达式
>BEGIN?|?BEGIN??END[BREAK]?|?BEGIN?<
SQL语句块2>?END[CONTINUE]?|?BEGIN??ENDEND其中,CON
TINUE语句可以使程序跳过其后的语句而重新回到WHILE语句执行;BREAK语句可以使程序跳出循环。五、WAITFOR语句
语句格式:WAITFORDELAY<’time’>|TIME<’time’>延迟执行语句,其功能是:通过指定某个
时间或延迟某个时间间隔后,再执行其后的语句或存储过程。小结1、BEGIN…END:定义语句块2、IF…ELSE:若指定
条件为真,执行一个分支,否则执行另一个分支3、WHILE:当指定条件为真时重复一些语句4、CASE:允许表达式按照条件返回不同
的值5、BREAK:退出最内层的WHILE循环6、RETURN:重新开始WHILE循环7、WAITFOR:为语句的执行设置延
迟六、其它语句1、GO语句:表示一个批处理的结束2、GOTO语句:跳转到字母数字串标号所在的语句执行3、RETURN语句:
无条件地退出批处理、存储过程或触发器4、PRINT语句:向客户端返回用户定义消息5、EXECUTE语句:执行一个系统存储过程或
用户定义的存储过程等第6章Transact-SQL与存储过程6.4基于T-SQL的数据库创建与管理一、利用T-SQL语句
创建数据库语句格式:CREATEDATABASE<新数据库名>[ON[PRIMARY][<数据文件描述项>[,…
n]][,<文件组项>[,…n]]][LOGON{<日志文件描述项>[,…n]}][LOLLATEcoll
ation_name][WITH<外部访问选项>]一、利用T-SQL语句创建数据库例6.6创建大学教学管理数据库,数据库
名为JXGL。该数据库包含一个数据文件和一个事务日志文件。其中:主数据库文件逻辑名称为JXGL_data,数据文件的操作系统
文件名称为JXGL.mdf,数据文件初始大小为5MB,数据文件大小最大值为200MB,数据文件大小以5%的增量增加。日志逻
辑文件名称为JXGL_log,事务日志的操作系统文件名称为JXGL.ldf,日志文件初始大小为5MB,可按2MB增量增加,最大
值为50MB。USEmaster;--打开master数据库GO--验证数据库JXGL是
否存在,如果存在则删除IFDB_ID(N''JXGL'')ISNOTNULLDROPDATABASEJXGL;GO
--SQLServer默认数据文件的位置DECLARE@data_pathnvarchar(256);SET@dat
a_path=(SELECTSUBSTRING(physical_name,1,CHARINDEX(N''master.
mdf'',LOWER(physical_name))-1)FROMmaster.sys.master_filesWHE
REdatabase_id=1ANDfile_id=1);--执行CREATEDATABASE语句创建JXGL数
据库EXECUTE(''CREATEDATABASEJXGLON(NAME=JXGL_data,FILE
NAME=''''''+@data_path+''JXGL.mdf'''',SIZE=5,MAXSIZE=200,
FILEGROWTH=5%)LOGON(NAME=JXGL_log,FILENAME=''''''+@dat
a_path+''JXGL.ldf'''',SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=
2MB)'');GO一、利用T-SQL语句创建数据库执行以上脚本程序,如数据库创建成功,则窗口显示消息“命令已成功完成
”,如下图。二、利用T-SQL语句管理数据库1、使用数据库使用数据库的语句格式为:USE<数据库名>含义:使用并打开
名为“数据库名”的数据库。二、利用T-SQL语句管理数据库2、修改数据库包括:在数据库中添加或删除文件或文件组,更改文件和
文件组的属性等。二、利用T-SQL语句管理数据库3、删除数据库语句格式为:DROPDATABASE<数据库名>[,
…n]第6章Transact-SQL与存储过程6.5存储过程为了完成控制访问权限管理、进行数据库审计追踪、实现关
系到数据库及其所有相关应用程序的数据定义语句与数据操作语句的分隔,以及完成其它一些具有特定功能的复杂工作,SQLServer提供
了一种独立于数据表之外的称为存储过程(Stored-Procedure)的数据库对象。一、存储过程概述1、什么是存储过程存储
过程是利用Transact-SQL语言编写的存储在数据库内的可以执行一些特殊的或常用的数据处理的程序(T-SQL语句集合),它
是数据库对象之一。存储过程可以通过编译在数据库后台执行,是数据库端编程的重要技术。一、存储过程概述2、存储过程的实现机理存
储过程类似于编程语言中的过程。在使用T-SQL语言编程的过程中,可以将某些需要多次实现(调用)的查询、业务规则、被其它过程使用的公
共例行程序编写成一个个过程,将其编译好保存在(数据库服务器的)数据库中,并由客户端应用程序、其他过程或触发器来通过过程名来调用它们
。所以将其称为存储过程。一、存储过程概述3、存储过程的性能存储过程是一种把重复的任务操作封装起来的一种方法,可以接收用户提供
的参数,返回(状态)值和修改值;允许多个用户使用相同的代码,完成相同的数据操作;提供了一种集中且一致的实现数据完整性逻辑的方法。一
、存储过程概述4、存储过程的优点具体来说有以下优点:?实现了模块化编程。?具有对数据库立即访问的功能。?可以加快程序的
运行速度。?可以减少网络流量。?可以提高数据库的安全性。一、存储过程概述5、存储过程的种类系统存储过程(SystemS
toredProcedures)用户自定义的存储过程(User-definedStoredProcedures)临时存
储过程(TemporaryStoredProcedures)扩展存储过程(ExtendedStoredProcedure
s)远程存储过程(RemoteStoredProcedures)一、存储过程概述(1)系统存储过程系统存储过程是由系统
提供的存储过程,主要用于从系统表中获取信息,从而为系统管理员管理SQLServer提供支持。系统存储过程被放在master数据库
中,以sp_为前缀。系统存储过程可以在其它数据库中被调用而不必在存储过程名前加数据库名。一、存储过程概述(2)用户自定义的存
储过程用户定义的存储过程是用户为完成某一特定功能而创建的存储过程,它被存于用户创建的数据库中,存储过程名前不需要前缀sp_。分
为两类:一类是保存T-SQL语句集合的存储过程;另一类是CLR存储过程,该存储过程是指对Microsoft.NETFramew
ork公共语言运行时(CLR)方法的引用,它们在Microsoft.NETFramework程序集中是作为类的公共静态方法
实现的。一、存储过程概述(3)临时存储过程临时存储过程与临时表类似,分为局部(本地)临时存储过程和全局临时存储过程,过程名
称前面有前缀“#”的为本地临时存储过程,过程名称前面有前缀“##”的为全局临时存储过程。使用临时存储过程必须创建本地连接,当SQL
Server关闭后,这些临时存储过程将自动被删除。一、存储过程概述(4)扩展存储过程扩展存储过程是SQLServer可
以动态装载和执行的动态链接库(DLL)。扩展存储过程的使用方法与系统存储过程一样。扩展存储过程只能添加到master数据库中,其前
缀是xp_。扩展存储过程允许使用编程语言,比如C语言,创建自己的外部过程。扩展存储过程直接在SQLServer的实例的地址空间
中运行,可以使用SQLServer扩展存储过程API完成编程。一、存储过程概述(5)远程存储过程远程存储过程是指从远程服
务器上调用的存储过程。一、存储过程概述6、常用的系统存储过程(1)sp_helpdb:用于查看数据库名称及大小。(2)s
p_helplogins:用于查看所有数据库用户登录信息。(3)sp_helpsrvrolemember:用于查看所有数据库用户
所属的角色信息。(4)sp_helptext:查看未加密的存储过程、用户定义函数、触发器、视图等的文本信息。(5)sp_ren
amedb:用于重新命名数据库。二、创建存储过程SQLServer中,有两种创建存储过程的方法:一种方法是使用SQLSe
rverManagementStudio创建存储过程;另一种方法是使用T-SQL中的CREATEPROCEDURE命令创建
存储过程。二、创建存储过程在创建存储过程时,需要根据拟创建的存储过程要完成的功能,提前确定以下要素:(1)存储过程的输入参数
,要传回给调用者的输出参数(返回状态)。(2)根据实现的功能要求确定对数据库的操作语句;确定是否要调用其它存储过程(语句)。(
3)该存储过程返回给调用者的状态值,以及指明调用是成功还是失败的约定。二、创建存储过程1、使用SQLServerManag
ementStudio创建存储过程{类似于第3章介绍的数据库对象的创建方法}二、创建存储过程2、使用T-SQL语句创建存储
过程CREATEPROC[EDURE][OWNER.]procedure_name[;number][{@par
ameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[;][,...n][;]二、创建存储过程例6.8创建一个存储过程,其实现的功能是根据某学生的学号返回学生的姓名、所学课程的课程名和成绩。USEJXGLGOCREATEPROCEDURESCG_name@s_numbervarchar(9)ASSELECTSNAME,CNAME,GRADEFROMS,SC,CWHERES.S#=@s_numberANDS.S#=SC.S#ANDSC.C#=C.C#GO二、创建存储过程利用查询编辑器窗口创建该存储过程及完成信息如下图。三、执行存储过程语句格式:[EXEC[UTE]]{[@return_status=]procedure_name[;number]|@procedure_name_var}[[@parameter=]{value|@variable[OUTPUT]|[DEFAULT]}][,...n][WITHRECOMPILE]三、执行存储过程例6.9创建的存储过程是一个带有输入参数的存储过程,因此执行该存储过程的语句为:USEJXGLEXECUTESCG_name''201401003''GO四、管理存储过程1.使用“SQLServerManagementStudio”管理存储过程(1)查看存储过程四、管理存储过程1.使用“SQLServerManagementStudio”管理存储过程(2)修改存储过程四、管理存储过程1.使用“SQLServerManagementStudio”管理存储过程(3)删除存储过程四、管理存储过程2.使用用T-SQL语句查看存储过程(1)查看存储过程的定义(2)查看存储过程的信息如:sp_helpproc_name
献花(0)
+1
(本文系太好学原创)