易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server:将列更新从一个表传递到另一个表

问:怎样在一个UPDATE语句中使用表B的三个列更新表A中的三个列?
  答:对这个问题,您可以使用强大的关系代数。本页中的代码说明了如何组合使用from子句和JOIN操作,以达到用其他表中数据更新指定列的目的。在设计关系表达式时,您需要决定是否需要单一行匹配多个行(一对多关系),或者需要多个行匹配被联接表中的单一行以更新所有行(多对一关系)。
  在一对多关系中,SQL Server始终使用它找到的最后一行更新数据。但是,您无法控制最后一行所在的位置。在多处理器的计算机上,查询可能是同步进行的,相同的查询最后一行的位置可能会不同。因此,Microsoft建议尽量不要使用一对多关系。
  如果待更新的表与from子句中的表相同,并且from子句只包含对该表的一个引用,别名可能未被指定。如果待更新的表在from子句中出现了多次,只有该表的一个引用可以省略表的别名,对该表的所有其他引用必须包含一个表别名。
USE tempdb
GO
CREATE TABLE #t1 (c1 int NOT NULL, c2 char(5), c3 char(5),
 c4 char(5))
GO
CREATE TABLE #t2 (c1 int NOT NULL, c2 char(5), c3 char(5),
 c4 char(5))
GO
--数据赋值
INSERT #t1 values (1,'hello','there','fred')
INSERT #t2 values (1,'how','are','you?')
--更新数据
UPDATE #t1 SET #t1.c2 = #t2.c2, #t1.c3 = #t2.c3,
 #t1.c4 = #t2.c4
from #t2
WHERE #t1.c1 = #t2.c1
--检查结果
SELECT * from #t1


相关文档:

oralce 生成10万条测试数据的sql语句

做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条SQL快速生成大量的测试数据的方法。
产生测试数据的SQL如下:
SQL> select rownum as id,
  2          &nbs ......

SQL 与 ORACLE 的比较 (转)


01、SQL与ORACLE的内存分配
ORACLE的内存分配大部分是由INIT.ORA来决定的,一个数据库实例可以有N种分配方案,不同的应用(OLTP、OLAP)它的配置是有侧重的。 SQL概括起来说,只有两种内存分配方式:动态内存分配与静态内存分配,动态内存分配充许SQL自己调整需要的内存,静态内存分配限制了SQL对内存的使 用。
002、SQ ......

Oracle PL\SQL 操作(三)Oracle函数


1.系统变量函数
(1)SYSDATE
该函数返回当前的日期和时间。返回的是Oracle服务器的当前日期和时间。
select sysdate from dual;
insert into purchase values
(‘Small Widget’,’SH’,sysdate, 10);
insert into purchase values

(‘Meduem Wodget’,’SH’, ......

Oracle PL\SQL操作(五)

1.在表之间传输数据
1)利用INSERT传输数据
insert into test1 (select name2,age2 from test2);
从上面的操作可以看出,可通过SELECT向一个表中成批地添加数据,但应注意:数据类型要一致,所选择的列数应一致。此语句的语法格式如下:
INSERT INTO table_name (
SELECT statement
) ;
2)基于已有的表建立新 ......

oracle vs. SQL 同义词synonym 别名 alias

oracle 同义词 synonym 为数据库对象建立同义词后,当dba对数据库对象(table,view,序列)做了一个简单改动之后,如名字或者结构改变,则不需要重新更改并编译应用.在数据库字典中有定义,不需要进行任何存储.
oracle别名alias,With as 生成一个临时表,对于复杂的数据查询,可以减少资源消耗、提高性能。9i引入。
with alias ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号