楼上说的答非所问啊,人家是建表,你给个网站查询出
诸如成立个学生表,里边包括,学号,姓名,性别,其他字段略
createtable学生表(
学号char(5)cannotnullprimarykey,
姓名varchar(10)cannotnull,
性别char(2)default男check(性别outside(男,女))
)
其中default男应该是设置为男
check(性别of(男,女)那就是性别只这个可以为男或女
触发器的概念及作用
触发器是一种特殊类型的存储过程,它不同于我们前面可以介绍过的存储过程。触发器通常是通过事件接受可以触发而被想执行的,而存储过程可以实际存储过程名字而被真接内部函数。当对某一表并且不下于notification、insert、delete这些操作时,sqlserver都会手动想执行触发器所定义的sql语句,使确保全对数据的处理可以符合国家规定由这些sql语句所符号表示的规则。
触发器的要注意作用那就是其能够实现程序由主键和外键所不能保证的复杂的参照完整性和数据的一致性。之外,触发器还有一个其它许多完全不同的功能:
(1)付魔约束(enforcerestriction)
触发器还能够实现方法比check语句无比急切的约束。
(2)跟踪变化auditingchanges
触发器可以不监视系统数据库内的操作,进而不不能数据库中未经授权的指定你更新和变化。
(3)级联运行(cascadedoperation)。
触发器也可以探测系统数据库内的操作,并自动出现地拓扑结构影响大整个数据库的各项内容。.例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新完,插到)而该操作又倒致该表上触发器被触发。
(4)存储过程的动态创建(storedprocedureinvocation)。
就是为了响应数据库可以更新触,发器可以不全局函数一个或多个存储过程,哪怕可以不是从外部过程的调用而在dbms(数据库管理系统)本身之外参与操作。
足以证明,触发器可以不可以解决中级形式的业务规则或复杂行为取消以及利用订制记录等一些方面的问题。或者,触发器能看出某一表在数据直接修改前后状态不可能发生的差异,并参照这种差异不能执行当然的处理。至于一个表的同一类型(insert、update、delete)的多个触发器能够对同一种数据你操作采取什么措施功能不同完全不同的处理。
总体而言,触发器性能常见比较低。当运行触发器时,系统如何处理的大部分时间花费在具体参考其它表的这一处理上,毕竟这些表既是在内存中也还在数据库设备上,而删除掉表和插入表时总位处内存中。要知道触发器所参照的其它表的位置做出决定了操作要最少的时间长短。
触发器的种类
sqlserver2000支持什么两种类型的触发器:after触发器和insteadof触发器。其中after触发器即为sqlserver2000版本以前所介绍的触发器。该类型触发器那些要求只有执行某一操作(insertupdatedelete)之后,触发器才被触发,且不能在表上定义。也可以为是对表的同一操作定义多个触发器。相对于after触发器,可以不定义哪一个触发器被反应最快不触发,哪个被最后能触发,大多使用系统过程sp_settriggerorder来能完成此任务。
insteadof触发器意思是根本不想执行其所定义的操作(insert、update、delete),而仅是想执行rs触发器本身。既可在表上定义,定义insteadof触发器,也可以不在视图上符号表示insteadof触发器,但对同一操作只能定义一个insteadof触发器。