SQL Server 2008:如何基于同一个表中的另一个字段更新字段

时间:2016-08-19 14:06:07

标签: sql sql-server sql-server-2008 tsql

我有一张表,其中包含员工名字和姓氏的字段。用户名也有一个字段。如果更新名字和姓氏字段,我将如何自动填充用户名?

我想要这种格式的用户名字段:' CompanyX \ FirstName.LastName'

我已经查看过触发器,但我不认为表上的触发器可以自行更新。任何帮助,将不胜感激。谢谢!

我正在使用SQL Server 2008。

3 个答案:

答案 0 :(得分:4)

以下是计算列的示例。我测试了它并且工作正常。

CREATE TABLE [dbo].[Table_1](
    [Company] [varchar](50) NULL,
    [FirstName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [UserName]  AS (((([Company]+'\')+[FirstName])+'.')+[LastName]) PERSISTED
) ON [PRIMARY]

GO

答案 1 :(得分:2)

你可以像这样在桌子上制作一个触发器。

/****** Object:  Trigger [dbo].[trg_AuditEmployees]    Script Date: 08/04/2016 10:24:04 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TRIGGER [dbo].[trg_AuditEmployees] 
ON [dbo].[employees] 
FOR INSERT, UPDATE
AS 
BEGIN

   update dbo.employees 
   set username = company + 'x\' + lastname + '.' + firstname
   where id = select id from inserted

END

答案 2 :(得分:0)

创建计算列用户名作为所有这些属性的连接