工作中点滴记录

永远保持学徒心态

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在业务逻辑复杂的过程中,经常会用把一张表的数据复制到另外一张表中;

sql给我提供2中最常用的方法:

第一种用INSERT INTO 

第二种用SELECT INTO

现在以实例举例:

-----报价表------------------
CREATE TABLE MDPrices(
ID    INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Goods INT NOT NULL,
Area  INT NOT NULL,
GuidePrice DECIMAL(18,4),
CreateTime DATETIME DEFAULT GETDATE()
)
------------------------------
-----历史报价表---------------
CREATE TABLE MD_HistoryPrices(
ID	INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
Goods INT NOT NULL,
Area INT NOT NULL,
Price DECIMAL(18,4),
CREATETIME DATETIME
)
----------INSERT INTO --------
INSERT INTO MD_HistoryPrices(Goods,Area,Price,CREATETIME) SELECT Goods,Area,GuidePrice,CreateTime FROM MDPrices

----------查  询--------------
SELECT * FROM MD_HistoryPrices
----------------------------------

 第二种情况 ,用SELECT INTO

语法SELECT * INTO 表1 FROM 表2

表1在我们的db中不能存在,select into的意思再执行时创建表1,不需要提前创建好;

SELECT IDENTITY(SMALLINT ,1,1) AS ID, Goods,Area,GuidePrice,CreateTime INTO HistoryPrice FROM MDPrices

 

IDENTITY()函数作用在表HistoryPrice从1开始编辑自增号,种子是1;

语法:identity(data_type,seed,increment) as Column_Nmae

只用在带有INTO TABLE子句的SELECT语句中,将标识列插入的新表中,但不是与create table一起使用的identity属性 

posted on 2012-05-13 10:56  梦里故乡  阅读(886)  评论(0编辑  收藏  举报