【问题标题】:Automatically fill row with value based on inserted id根据插入的 id 自动用值填充行
【发布时间】:2018-03-02 10:25:21
【问题描述】:

我有一个表,用户可以在其中插入与数据库中其他地方的标题相对应的节点 ID。我希望在用户选择了 id 后,这个磁贴自动插入到行中。

这是我的桌子:

我需要根据插入的“SommerhusId”自动填充“SommerhusNavn”列。

我正在使用第三方来处理 CRUD 功能,用户从下拉列表中选择 ID。我已经知道 ID 的标题位于哪个表中,我只是不确定如何使用插入语句填充该行。我是否需要运行单独的查询才能发生这种情况?

编辑:解决方案

CREATE TRIGGER [dbo].[BlokeredePerioderInsert]
ON  dbo.BlokeredePerioder
AFTER INSERT
AS 
BEGIN   
SET NOCOUNT ON;

UPDATE BlokeredePerioder SET SommerhusNavn = text FROM umbracoNode AS umbNode
where SommerhusId = umbNode.id

END
GO

【问题讨论】:

    标签: sql sql-server tsql sql-insert database-trigger


    【解决方案1】:

    是的,您需要运行额外的UPDATE 查询。假设您拥有TitlesTable,其中包含IDTitle 列。那么它应该是这样的:

    UPDATE MyTable SET SommerhusNavn = Title FROM TitlesTable AS A
    WHERE SommerhusId = A.ID
      AND SommerhusNavn IS NOT NULL --not necessary
    

    【讨论】:

    • 谢谢,我试试看!
    • 我使用您提供的更新代码创建了一个触发器,它对我有用。我将在我的原始帖子中插入解决方案。
    【解决方案2】:

    也许我不明白,但为什么你不能在初始更新中使用发送值?

    你能在数据库端使用触发器吗?

    或者,您需要在插入之后发送更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多