文档详情

第3章 设计数据库结构与构建.ppt

发布:2017-06-03约2.34万字共63页下载文档
文本预览下载声明
(4)用于查询统计信息。这种场景中主要用到如下几个方法。 public static object ExecuteScalar(string cmdText, CommandType cmdType, ListSqlParameter cmdParameters) public static SqlParameter CreateParameters(string paraName, DbType paraType, string paraValue) 【例3.5】 查询数据库内一共有多少位教师。 //定义要查询的sql string sql = select count(teaName) from Teacher; //指定查询,把结果保存到一个整数中 int count = (int)commDBHelper.ExecuteScalar(sql, CommandType.Text, null); 在SQL Server 2005中创建存储过程的SQL命令是Create Procedure,其语法格式如下: CREATE PROC[EDURE] procedure_name /* 定义存储过程名 */ [ { @parameter data_type } /* 定义参数的类型 */ [ VARYING ] [ = default ] [ OUTPUT ]?] /* 定义参数的属性 */ [ ,...n1] [ WITH??{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION }] /* 定义存储过程的处理方式 */ [ FOR REPLICATION ] AS BEGIN sql_statement [ ...n2 ] /* 执行的操作 */ END 其中,procedure_name是定义的存储过程名,其他参数的含义如下: @parameter为存储过程的形参,@符号作为第一个字符来指定参数名称。参数名必须符合标识符规则,创建存储过程时,可声明一个或多个参数,执行存储过程时应提供相应的实参,除非定义了该参数的默认值,默认参数值只能为常量。形参局部于该存储过程。data_type用于指定形参数据类型,形参可为SQL Server支持的任何类型。 default指定存储过程输入参数的默认值,默认值必须是常量或NULL,默认值中可以包含通配符(%、_、[]和[^]),如果定义了默认值,执行存储过程时根据情况可不提供实参。 关键字OUTPUT用于指定参数从存储过程返回信息。 n1表示可为存储过程指定若干个参数。 sql_statements是SQL语句,用于描述所定义的存储过程所要执行的操作。 n2表示可以有多个SQL语句,多个SQL语句一起组成存储过程需要执行的一系列操作。 例如: CREATE PROCEDURE InsertStudent @CN nchar(10), @CS int, @Age int AS BEGIN Insert INTO Course (courseName, courseScore) Values (@CN,@CS) END 6.触发器 触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。使用触发器的优点如下: ① 触发器是自动的。它们可在对表的数据做了任何修改(如手工输入或者应用程序采取的操作)之后立即被激活。 ② 触发器可以通过数据库中的相关表进行级联更改。例如,可以在 titles 表的 title_id 列上编写一个删除触发器,以触发在其他表中删除各匹配行的操作。该触发器用 title_id 列作为唯一键,在 titleauthor、sales 和 roysched 表中对各匹配行进行定位。 ③ 触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其他表中的列。 在SQL Server 2005中创建触发器的SQL命令是CREATE TRIGGER,其语法格式如下: CREATE TRIGGER trigger_name ON { table | view } { [AFTER | INSTEAD OF] } { [ INSERT ] [ UPDATE ] [ DELETE ] } AS BEGIN sql_statement [ ...n ] END 其中,trigger_name是定义的存储过程名,sql_st
显示全部
相似文档