更改表表名
[添加新的列名数据类型完整性约束]
[删除完整性约束名称]
[修改列名数据类型]
add子句用于添加新列或完整性约束,如外键。
drop子句用于删除指定名称的完整性约束。
modify子句用于修改原始列定义,包括列名和数据类型。
例如,更改表“学生添加入学日期”会为学生添加一列入学时间。
在数据库sql语句中设置外键的方法:
1、外键约束
外键约束当:更新并插入外键字段的值时,它将使用引用表中该字段的数据进行验证。如果数据不规则,更新和插入会失败,保证数据的有效性。
2.向现有字段添加外键约束。
3.创建数据表时设置外键约束。
4.删除外键约束
触发器的概念和功能
触发器是一种特殊类型的存储过程,它不同于我们前面介绍的存储过程。触发器主要通过触发事件来执行,而存储过程可以通过存储过程名来直接调用。在对表执行更新、插入、删除等操作时,sqlserver会自动执行触发器定义的sql语句,从而确保数据处理必须符合这些sql语句定义的规则。
触发器的主要作用是可以实现主键和外键无法保证的复杂的参照完整性和数据一致性。此外,触发器还有许多其他不同的功能:
(1)加强约束(enforcerestriction)
触发器可以实现比check语句更复杂的约束。
(2)跟踪变更审计变更
触发器可以检测数据库中的操作,因此不允许对数据库进行未经授权的指定更新和更改。
(3)级联操作。
触发器可以检测数据库中的操作,并自动级联整个数据库的内容。例如,一个表上的触发器包含另一个表上的数据操作(如删除、更新和插入),这又会导致该表上的触发器被触发。
(4)存储过程调用。
为了响应数据库更新,发送器可以调用一个或多个存储过程,甚至可以通过调用外部过程在dbms本身之外进行操作。
因此,触发器它可以解决高级业务规则或复杂行为限制以及定制记录的实现等问题。比如一个触发器可以找出一个表在数据修改前后的状态差异,并根据这个差异进行一定的处理。此外,表的相同类型(插入、更新、删除)的多个触发器可以用不同的处理相同的数据操作。
一般来说,触发器的性能通常较低。当触发器运行时,大部分系统处理时间都花在引用其他表的处理上,因为这些表既不在内存中也不在数据库设备上,而被删除的表和入的表总是在内存中。可以看出,触发器引用的其他表的位置决定了它运行所需的时间长度。
触发器的类型
sqlserver2000支持两种类型的触发器:after触发器和insteadof触发器。其中,aftertrigger是sqlserver2000之前引入的触发器。这种类型的触发器要求仅在执行操作(insertupdatedelete)后才触发触发器,并且只能在表上定义。您可以为表上的同一操作定义多个触发器。对于after触发器,您可以定义哪个触发器先被触发,哪个触发器最后被触发。通常,系统过程sp_settriggerorder用于完成此任务。
insteadoftrigger意味着不执行定义的操作(insert、update、delete),而只执行触发器本身。可以在表或视图上定义insteadof触发器,但同一操作只能定义一个insteadof触发器。