on delete no action on update no action
£¨2£©ÀûÓÃSQLÓï¾ä½¨Á¢CPXSBÓëXSS±íÖ®¼äµÄ²ÎÕÕ¹ØÏµ£¬µ±¶ÔÖ÷±íXSS±í½øÐиüкÍɾ³ý²Ù×÷ʱ£¬
´Ó±íCPXSB²ÉÓÃCASCADE£¨¼¶Áª£©·½Ê½£¬Ð´³öÆä¹ý³Ì¡£
alter table CPXSB
add constraint XSS_CPXSB_FK foreign key (¿Í»§±àºÅ) references XSS(¿Í»§±àºÅ) on delete cascade on update cascade
3¡¢ÓòÍêÕûÐÔµÄʵÏÖ
£¨1£©ÔÚCP±íµÄ¼Û¸ñÁÐÉ϶¨Òå´óÓÚµÈÓÚ0µÄ¼ì²é£¨CHECK£©Ô¼Êø¡£
alter table CP
add constraint ¼Û¸ñ_CK check (¼Û¸ñ>0)
£¨2£©¶¨ÒåÒ»¸ö´óÓÚµÈÓÚ0µÄ¹æÔòcheck_kcl£¬²¢½«Æä°ó¶¨µ½CP±íµÄ¿â´æÁ¿ÁУ¬È»ºó½â³ý°ó¶¨£¬É¾³ý¸Ã¹æÔò£¬Çëд³öÏà¹ØSQLÓï¾ä¡£ create rule check_kcl as @kcl>=0 sp_bindrule 'check_kcl','CP.¿â´æÁ¿' sp_unbindrule 'CP.¿â´æÁ¿' drop rule check_kcl
4¡¢×ÛºÏѵÁ·
´´½¨Ò»¸ö¡°Ñ§Éúµµ°¸¡±Êý¾Ý¿â£¬²¢ÓÃCREATE TABLEÔÚ¸ÃÊý¾Ý¿âÖд´½¨¡°ÈËÊ¡±±íºÍ¡°³É¼¨¡±Á½¸ö±í£¬
ÆäÖС°ÈËÊ¡±±í°üÀ¨Ñ§ºÅ¡¢ÐÕÃû¡¢ÐԱ𡢵绰ºÅÂë¡¢¼Òͥסַ×Ö¶Î×é³É¡£¡°³É¼¨¡±±í°üÀ¨Ñ§ºÅ¡¢Ñ¡Ð޿γÌÃû³Æ¡¢³É¼¨Èý¸ö×ֶΡ£
·Ö±ðÔÚ¡°ÈËÊ¡±±íµÄѧºÅ×Ö¶ÎÉèÖÃÖ÷¼üÔ¼Êø£¬ÔÚ¡°³É¼¨¡±±íµÄѧºÅ×Ö¶ÎÉèÖÃÍâ¼üÔ¼Êø£¬Ôڳɼ¨×Ö¶ÎÉèÖôóÓÚµÈÓÚ0СÓÚµÈÓÚ100µÄ¼ì²éÔ¼Êø£¬
ÔÚ¼Òͥסַ×Ö¶ÎÉèÖÃÎ©Ò»Ô¼Êø£¬ÔÚÐÔ±ð×Ö¶ÎÉèÖÃĬÈÏֵΪ¡°ÄС±¡£ create database ѧÉúµµ°¸ on (
name='ѧÉúµµ°¸_data',
filename='c:\\sql\\data\\ѧÉúµµ°¸_data.mdf' )
log on
(
name='ѧÉúµµ°¸_log',
filename='c:\\sql\\log\\ѧÉúµµ°¸_data.ldf' )
create table ÈËÊÂ (
ѧºÅ char(8) primary key, ÐÕÃû char(16),
ÐÔ±ð char(2) default 'ÄÐ', µç»°ºÅÂë char(12),
¼Òͥסַ char(50) unique )
create table ³É¼¨ (
ѧºÅ char(8) foreign key references ÈËÊÂ(ѧºÅ), Ñ¡Ð޿γÌÃû³Æ char(16),
³É¼¨ numeric(9) check(³É¼¨>=0 and ³É¼¨<=100) )
ʵÑéÊ®Èý
¶ÔÓÚCPXSÊý¾Ý¿â£¬´´½¨ÈçÏ´洢¹ý³Ì£º 1¡¢Î޲δ洢¹ý³Ì
±àдһÎ޲δ洢¹ý³ÌÓÃÓÚ²éѯÿ¸ö¿Í»§¹ºÂò²úÆ·µÄÇé¿ö£¨°üÀ¨¿Í»§±àºÅ¡¢²úÆ·±àºÅ¡¢¿Í»§Ãû³Æ¡¢²úÆ·Ãû³Æ¡¢¼Û¸ñ¡¢¹ºÂòÈÕÆÚ¡¢¹ºÂòÊýÁ¿£©£¬È»ºóµ÷Óøô洢¹ý³Ì¡£ create procedure gmqk as
select XSS.¿Í»§±àºÅ,¿Í»§Ãû³Æ,CP.²úÆ·±àºÅ,²úÆ·Ãû³Æ,¼Û¸ñ,ÏúÊÛÈÕÆÚ as '¹ºÂòÈÕÆÚ',ÊýÁ¿ as'¹ºÂòÊýÁ¿'
from CP,XSS,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ
exec gmqk
2¡¢´øÓвÎÊýµÄ´æ´¢¹ý³Ì
±àдһ¼ÓÃÜ´æ´¢¹ý³Ì£¬²éѯָ¶¨¿Í»§¹ºÂò²úÆ·µÄÇé¿ö¡£²¢µ÷Óøô洢¹ý³Ì²éѯ¿Í»§±àºÅΪ¡°000002¡±µÄ¿Í»§¹ºÂòÇé¿ö¡£
create procedure gmqk1 @¿Í»§±àºÅ char(6) with encryption as