2010-09-24 31 views
2

我想添加一个简单的触发器到一个表 - 第一个问题我来了横跨该表是有文本列 - 所以删除,插入,更新触发器不会浮动。 '而不是'虽然。添加触发器到级联表

我现在反对这个事实,表上有瀑布设置它。你知道是否有办法绕过那个小宝石,或者我基本上都是在摸索?

回答

1

创建一个新表,每个人都使用它来代替层叠表。然后建立你的“而不是”触发器到新的表,并更新触发器内的旧表。

旧表格将像平常一样级联,但您的新表格没有任何级联。

更新:

您可以尝试添加一个视图,而不是创建另一个表。您甚至可以从视图中排除这些文本列。

+0

我看到的话 - 但他们看起来像吉尔伯特?! ;) – iwayneo 2010-09-24 10:59:47

+0

我应该引用引用,但没有一个吉尔伯特头的URI :) – Fenton 2010-09-24 12:40:02

+0

gilbert://brain.biz – iwayneo 2010-09-24 14:43:08

0

我不知道您使用的SQL Server版本是什么,但文本列已过时 - 它们不会在下一版本的SQL Server中使用。如果你使用的是2000以上的版本,我建议你通过使它们成为nvarchar(max)(你还需要更改使用CONTAINS,WRITETEXT和其他文本类型代码的代码)来解决这些问题。

也就是说,我总是通过在主键上加入插入到实际表本身的值来获得触发器中文本列的值。

我不确定如何处理您的级联问题,因为我们不允许级联删除或更新的性能原因。据我所知,触发器仍然会触发(并且绝对应该写成处理多个记录插入,更新或删除操作,但我强烈认为所有触发器都应该这样写)。你们遇到的问题是什么问题?