SQl Server 2012从另一列自动填充一列

时间:2016-07-13 19:40:15

标签: tsql triggers sql-server-2012

我有一个表,其中用户输入名称,dob等,我有一个User_Name列,我想从其他列自动填充。

例如输入是:姓名 - John Doe,DOB - 01/01/1900

我希望User_Name列自动填充johndoe01011900(我已经有了连接列部分的算法来实现所需的结果)

一旦用户完成输入所有目标列,我只需要知道如何(SQL,Trigger)填充User_Name列。如果用户跳过并且没有按顺序输入数据怎么办?当然,所需的列是(非空)。

1 个答案:

答案 0 :(得分:1)

这应该这样做:

您可以使用计算字段进行以下计算:

LOWER(REPLACE(Name, ' ', ''))+CONVERT(   VARCHAR(10), DateOfBirth, 112))

在下面的示例中,我使用了临时表,但对于常规表也是如此。

示例:

CREATE TABLE #temp(Name        VARCHAR(100)
              , DateOfBirth DATE
              , CalcField AS LOWER(REPLACE(Name, ' ', ''))+CONVERT(   VARCHAR(10), DateOfBirth, 112));

INSERT INTO      #temp(Name
                 , DateOfBirth)
VALUES
      ('John Doe'
     , '01/01/1900');

SELECT *
FROM   #temp;

结果:

enter image description here