在业务逻辑复杂的过程中,经常会用把一张表的数据复制到另外一张表中;
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属性
怀揣着一点点梦想的年轻人
相信技术和创新的力量
喜欢快速反应的工作节奏
相信技术和创新的力量
喜欢快速反应的工作节奏