【问题标题】:How to insert data into a view of one database without the dependency of a table of another database in SQL Server?如何在 SQL Server 中不依赖另一个数据库的表的情况下将数据插入到一个数据库的视图中?
【发布时间】:2016-01-01 17:36:16
【问题描述】:

我在 DB1 中有一个名为 View1 的视图,在另一个数据库 DB2 中有一个名为 Table1 的表。当我试图将数据插入 View1 时, 它显示类似“Cannot insert the value NULL into column PrecisionQueueID, table DB1.Table1; Column doesn't allow nulls. INSERT fails”的错误

从这个错误中我了解到 Table1 具有 PrecisionQueueID 但 View1 没有 PrecisionQueueID。因此,当我尝试将数据插入 View1 时,它会显示错误。

Table1 列:

DateTime
SkillTargetID
SkillGroupSkillTargetID
PrecisionQueueID
TimeZone

查看 1 列:

DateTime
SkillTargetID
SkillGroupSkillTargetID
TimeZone

我的问题是如何删除 Table1 和 View1 之间的这个链接?我想将数据插入 View1,而不依赖 SQL Server 中的 Table1。

【问题讨论】:

  • 不可能将数据“插入到视图中”,并且不会同时将这些数据插入到某个表中。 Views 不保存任何物理数据。它们只是...视图
  • 视图数据是从视图源代码中使用的表中获取的。将新行插入到视图中,意味着将数据插入到视图对象后面的表中。这些是获取数据的表。所以表上的约束也会影响视图
  • @AndyKorneyev 感谢您的评论。将数据插入到解决问题的表中。
  • @Eralper 感谢您的评论。将数据插入到解决问题的表中。

标签: sql-server database sql-insert sql-view


【解决方案1】:

借助 AndyKorneyev 的评论(无法获得要引用的评论链接)和 Eralper's comment 我得到了解决方案。

由于我们不能手动将数据插入到视图中,我只是将数据插入到视图所引用的表中。所以我得到了我所期望的记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2010-10-06
    • 2011-01-17
    • 2010-10-23
    相关资源
    最近更新 更多