更新SQL表使用另一个表+自定义文本中的数据

时间:2016-03-07 11:06:50

标签: sql sql-server database sql-update

需要针对以下情况的解决方案: 我需要更新T1,列电子邮件 以下数据: id来自T1 + @ test.com

我需要的结果应该是这样的= 1234@test.com, 该号码必须是T1 + @ test.com的ID

例如:

table 1 = customer  
COLUMNS = ID, Email,

需要更新电子邮件列 结果应如下所示:

   ID Email   
    1  1@test.com       
    2  2@test.com       
    3  3@test.com 

我在现有的表上执行此操作,而不是创建它们。 tnx提前

3 个答案:

答案 0 :(得分:0)

你在找这样的东西吗?

CREATE TABLE T1 (ID INT, OtherData VARCHAR(100),eMail VARCHAR(100));
INSERT INTO T1(id,OtherData) VALUES(1,'Row 1'),(2,'Row 2'),(3, 'Row 3');

SELECT * FROM T1;

UPDATE T1 SET eMail= CAST(ID AS VARCHAR(10)) + '@test.com'

SELECT * FROM T1;

--Clean Up
DROP TABLE T1;

结果:

ID  OtherData   eMail
1   Row 1       1@test.com
2   Row 2       2@test.com
3   Row 3       3@test.com

答案 1 :(得分:0)

UPDATE T1 SET  
[Email] = T2.ID + '@test.com'  
FROM T2 INNER JOIN T1  
ON T2.[key_column] = T1.[foreign_key_column];  

这是你想要的吗?

答案 2 :(得分:0)

使用触发器

触发器用于在更改(插入,更新和删除)内容时插入或更新数据。 你可以这样使用。

CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name 

FOR EACH ROW BEGIN ... END;

您可以在BEGIN和END之间编写插入代码。