2016-03-07 252 views
0

更新SQL表usign数据需要进行如下的情况的解决方案:用以下数据 我需要更新T1,列电子邮件 :+ @ test.com从另一个表+自定义文本

从T1 ID结果,我需要应该是这样= [email protected], 这个数字必须是从T1的ID + @ test.com

例如:

table 1 = customer 
COLUMNS = ID, Email, 

需要更新均线il列。
结果应该是这样的:

ID Email 
    1 [email protected]  
    2 [email protected]  
    3 [email protected] 

我这样做是在现有的表,而不是创建它们。 tnx提前

+2

使用的标记dbms。添加示例表格数据(两个表格)和预期结果。 – jarlh

+0

使用触发器并在数据库中写入过程。 [在这里类似的东西检查出来](http://stackoverflow.com/questions/9510896/how-to-update-table-automatically-in-mysql-using-trigger) – SHAMBANNA

+0

我刚刚看到你的编辑。大!但是请将RDBMS添加到您的标记(Oracle,SQL Server,其他?)和版本号(例如sql-server-2012)中。经过您的编辑后,我认为我的答案正是您所期待的。你检查过了吗? – Shnugo

回答

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  [email protected] 
2 Row 2  [email protected] 
3 Row 3  [email protected] 
0
UPDATE T1 SET 
[Email] = T2.ID + '@test.com' 
FROM T2 INNER JOIN T1 
ON T2.[key_column] = T1.[foreign_key_column]; 

这是你想要的吗?

0

使用触发

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

CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name 

FOR EACH ROW BEGIN ... END;

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

相关问题