扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 limeinan 来源:天新网 2008年3月27日
关键字: Mssql SQL SQL Server 数据库
视图的选择列表可以包含除简单表达式(仅由一个列名构成)以外的其它表达式。这些视图上的 INSTEAD OF 触发器必须具有相应的逻辑,能够正确地确定 INSERT 和 UPDATE 触发器上指定的值中哪些值必须设置到基表中的列。此类表达式的示例包括:
◆不映射到任何表中任何列的视图表达式,如常数或某些类型的函数。
◆映射到多列的视图表达式,如由两个或更多列的串联字符串组成的复杂表达式。
◆转换单个基表列的值的视图表达式,如引用函数中的列。
这些情况还适合作为简单表达式的视图列,这些视图列引用基表中的计算列。定义计算列的表达式可与视图选择列表中的更复杂表达式具有相同的形式。
视图可在其不映射到任何基表列的选择列表中包含表达式,例如:
|
虽然 TodaysDate 列并不映射到任何表列,但是 Microsoft® SQL Server™ 2000 必须在将其传递到在 ExpressionView 上定义的 INSTEAD OF 触发器的 inserted 表中生成 TodaysDate 列。然而 inserted.TodaysDate 列可为空,所以引用 ExpressionView 的 INSERT 不必为该列提供值。因为表达式不映射到表中的列,所以触发器会忽略 INSERT 在该列中提供的任何值。
相同的方法应该应用于简单视图表达式,这些表达式引用基表中的计算列,而基表也生成不依赖于其它列的结果,例如:
|
一些复杂表达式映射到多列:
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者