测试数据库:MS SQL Server 2005
?
1、insert into select语句:
语句形式:insert into Table2(field1,field2,...) select value1,value2,... from Table1 where table1.......
表示从table1中复制符合条件的数据到table2中,要求目标表table2必须存在,若不存在则会报错。这个语句除了插入源表table1的字段外,还可以插入常量。
具体例子参见:http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html
?
2、select into from 语句:
语句形式:select vale1, value2 into Table2 from Table1 where field1......
表示从table1中复制符合条件的数据到table2中,要求目标表table2不存在,因为在插入数据时会自动创建table2。
具体例子参见:http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html
?
3、update select 语句:
语句形式:update table2 set table2.field...=table1.field... ,table2.field...=table1.field........ from table1 where table2.field...=table1.field...
简单例子:
update table2 set field3=t1.field2, field4=t1.field6 from table1 t1 where table2.field2=t1.field1 and table2.field2=2 ;
表示从table1中更新数据到符合条件的table2中,要求目标表table2必须存在,而且有符合条件的数据,当然要是没有数据或数据不对,自然不会符合条件,自然不会更新了。
具体例子参见:http://www.2cto.com/database/201208/148251.html
这个是这个例子上面的关于update的:
个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:
UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID
个人觉得这个是有问题的。我最开始是按照这个方法写的,报错,后来调整成上面的形式了,反而成功了。