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

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属性 

相关文章:

猜你喜欢
  • 2021-11-04
  • 2021-05-20
  • 2022-12-23
  • 2021-08-04
  • 2022-02-24
相关资源
相似解决方案