【问题标题】:Auto update two columns from 2 tables自动更新 2 个表中的两列
【发布时间】:2015-01-15 04:06:43
【问题描述】:

您好,我想知道在 SQL Server 数据库模式关系图中有一种方法使用级联或类似方法,可以使不同表中的两列保持相同。 pk fk 正在使用 part_number。我希望 part_description 在两个表中都匹配,而无需编写查询。

dbo.Parts 首要的关键 零件号 部分数量 部分说明 零件位置

dbo.part_numbers 零件号 part_description

【问题讨论】:

  • 您为什么决定采用这种模式?好像有点多余。
  • datagridview 自动绑定数据并填写part_description。以编程方式填充它会需要更多代码,我不知道该怎么做。

标签: sql relationship cascade populate


【解决方案1】:

您可以像这样创建触发器:在更新 dbo.Parts 表时更新 dbo.part_numbers 表,反之亦然。 这是一篇关于触发器的 MSDN 文章:http://msdn.microsoft.com/en-us/library/ms189799.aspx

【讨论】:

  • 谢谢蒂姆。我想在 sql server 中创建一个触发器,该触发器将在更新和插入时运行,这将使基于 part_number 的描述保持数据相同,part_number 也将保持不变。因此,如果一个人更新了一张表,它也应该更改另一张表,反之亦然。有没有更详细的信息可以提供帮助。我正在查看 msdn 并搜索示例。谢谢。
  • CREATE TRIGGER inserupdate ON Parts AFTER INSERT, UPDATE AS BEGIN -- SET NOCOUNT ON 添加以防止额外的结果集 -- 干扰 SELECT 语句。设置无计数;声明 @id1 int select part_number = part_number 从插入开始更新 dbo.part_number 设置 dbo.part_number.part_description = dbo.Parts.part_dateReceived 从插入结束 END GO 我在 dbo.Parts 上收到一个多部分标识符错误。 part_dateReceived
  • 抱歉,Brandon,我是 Oracle 人员,从未使用过 SQL Server。
  • 这是一种方式,但有两种方式的触发器会互相调用。我最终创建了一个视图。可能有办法以某种方式触发。我只是没有那么熟练。
  • 您可以添加验证触发代码,如“如果此值已插入此表,则不执行任何操作”。
猜你喜欢
  • 2020-08-12
  • 2010-10-27
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多