1

我有一个表,我想向其中添加计算列(每个用户的值不同 - 需要权限)。
问题是该表是 Microsoft Dynamics NAV 的一部分,它对计算列一无所知。
我已经设法欺骗 NAV 以便在 NAV 创建它之后更改列类型并且我可以读取数据。

现在我被插入物困住了。
NAV 不使用可为空的列,因此它总是尝试插入默认值,并且 SQL Server 失败并在计算列上出现错误。
我尝试编写 INSTEAD OF INSERT 触发器,但似乎 SQL Server 在运行触发器之前正在执行检查,但仍然失败并出现错误。

有什么方法可以强制 SQL Server 忽略计算列上的插入值?

4

1 回答 1

2

就我个人而言,我不会更改第三方应用程序的架构,尤其是金融系统。您可以创建视图而不是更改表 - 如果需要,您甚至可以在另一个数据库中创建它们 - 包括您的计算列定义,然后将INSTEAD OF触发器放在视图上并INSERT通过视图执行操作。

于 2012-11-29T16:11:31.353 回答