如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1、解释在SQLServer2008中,数据库中的数据完整性怎样得到保证,请举例说明;外键约束来保证数据的完整性约束--创建测试主表.ID是主键.CREATETABLEtest_main(idINT,valueVARCHAR(10),PRIMARYKEY(id));--创建测试子表.CREATETABLEtest_sub(idINT,main_idINT,valueVARCHAR(10),PRIMARYKEY(id));--插入测试主表数据.INSERTINTOtest_main(id,value)VALUES(1,'ONE');INSERTINTOtest_main(id,value)VALUES(2,'TWO');--插入测试子表数据.INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');1>ALTERTABLEtest_subADDCONSTRAINTmain_id_consFOREIGNKEY(main_id)REFERENCEStest_main;2>go1>DELETE2>test_main3>WHERE4>ID=1;5>go消息547,级别16,状态1,服务器HOME-BED592453C\SQLEXPRESS,第1行DELETE语句与REFERENCE约束"main_id_cons"冲突。该冲突发生于数据库"Stock",表"dbo.test_sub",column'main_id'。语句已终止2、请分别解释存储过程和触发器的概念,并详细说明有哪些触发器存储过程是在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL语句和流程控制语句的集合。就本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。SQLServer2005不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程。触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以从DBA_TRIGGERS,USER_TRIGGERS数据字典中查到。触发器的类型从顺序上来说,有BEFORE/AFTER也就是前触发/后触发(注:SQLServer没有BEFORE触发器)完成实验部分的内容,提交相关T-SQL语句到本作业SETNOCOUNTON--ConfigureusersIF(OBJECT_ID('dbo.users')ISNOTNULL)BEGINDROPTABLEdbo.[users]ENDGOSETANSI_PADDINGONGOCREATETABLE[dbo].[users]([id][int]IDENTITY(1,1)NOTNULL,[user_name][varchar](15)NOTNULL,CONSTRAINT[PK_users]PRIMARYKEYCLUSTERED([id]ASC)WITH(FILLFACTOR=100,PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GODECLARE@UserCountintDECLARE@TotalUserCountintSET@TotalUserCount=500000SET@UserCount=0WHILE(@UserCount<@TotalUserCount)BEGINSET@UserCount=@UserCount+1INSERTINTOdbo.[users](user_name)VALUES('DiggUser'+CONVERT(char(18),@UserCount))END--ConfigurefriendsIF(OBJECT_ID('dbo.friends')ISNOTNULL)BEGINDROPTABLEdbo.[friends]ENDGOCREATETABLE[dbo].[friends]([id][int]IDENTITY(1,1)NOTNULL,[user_id][int]NOTNULL,[user_n