2016-11-13 61 views
0

我有一张桌子。在这个表中,我有两列 - 'insert_name'和'modified_name'。我需要在这些列中插入关于谁将数据插入到表中的数据('insert_name')以及谁更改了表中的这些数据(modified_name)。如何做到这一点?如何在表格中插入用户名记录

enter image description here

+0

添加一些图形表示或数据来解释它。 –

+0

我已添加图形表示 –

回答

1

您正在寻找基本DML语句。

如果你的记录已经在表中,那么你需要UPDATE它。否则,当您要将记录添加到目标表中并且目标表中尚不存在时,则您正在寻找INSERT INTO语句。

UPDATE yourtable SET insert_name = 'value1', modified_name = 'value2' WHERE id = 1 

插入新记录的例子:用第一ID记录更新信息的

INSERT INTO yourtable(id, company_name, product_name, insert_name) 
VALUES (1, 'Google', 'PC', 'value1') 

如果你正在寻找自动更改这些列,那么你需要考虑触发器


请记住,更多的往往不是你可能会发现连接到数据库的应用程序正在使用单一的数据库用户在这种情况下,你可能知道在应用程序中的上下文(谁插入,更新谁)。这确实消除了触发器,并将任务直接放在应用程序层内的简单插入/更新命令上。

0

您可能可以使用CURRENT_USER函数来查找进行更改的用户的名称。

然后可以使用此函数的值更新适当的列。此更新可以作为INSERT或UPDATE语句的一部分来完成。或者使用INSERT或UPDATE触发器。

就我个人而言,我可以避免触发器。

0

对于这2列,将Current_User添加为默认约束。 插入语句首次将它们保存为当前登录用户名。对于更新,使用与Modified_Name列相同的Current_User语句来编写更新触发器。

当且仅当您的应用程序业务逻辑无法更新列modified_nme然后才去触发器。

看到使用Current_Use 的https://msdn.microsoft.com/en-us/library/ms176050.aspx

相关问题