SQL – 快速的复制一个数据表(Table),并成为另一个数据表(Table)

摘要:SQL - 快速的复制一个数据表(Table),并成为另一个数据表(Table)


本篇的技巧不难,只是之前有一位老手忽然间问:“要如何在 MS SQL 以命令的方式,快速的将 A Table 的字段及数据,成为 B Table !?”。好奇的我总是会多嘴问一下,主要是为了什么要这样做呢!? 老手回:“因为现在 A Table 的数据是错的,但我们也不确定客户所提供的数据是否正确,若冒然的删掉现有的数据,到时有问题要还原,还要有一些折腾。不如用这样的方式来处理,纵使数据错了,也比较好还原。”。其实听完后,脑袋第一个想到的是 MS SQL 的 Import 与 Export 的方式也可能达到所要的需求,但作法上有些复杂,且也比较花时间,那不如就使用“Select ... Into...From”的方式,以下就来用一个范例来测试看看...

Code:

--从数据表中移除所有数据列,且不记录个别数据列的删除动作
TRUNCATE TABLE DBO.MYTABLE

--在 DBO.MYTABLE 数据表建立 5 笔数据
DECLARE @ICOUNT INT

SET @ICOUNT = 0

WHILE(@ICOUNT <= 5)
BEGIN
INSERT INTO DBO.MYTABLE([UID], FIRSTNAME, LASTNAME, CREATETIME)
VALUES(NEWID(), 'DANNY ' + CONVERT(VARCHAR(1), @ICOUNT) , 'CHANG', GETDATE())

SET @ICOUNT = @ICOUNT + 1
END

--显示 DBO.MYTABLE 的数据
SELECT * FROM DBO.MYTABLE ORDER BY FIRSTNAME ASC

--建立新的数据料表,其字段与数据均为 DBO.MYTABLE 数据表
SELECT * INTO DBO.MYTABLE_1 FROM DBO.MYTABLE WHERE 1=1

SELECT * INTO DBO.MYTABLE_1 ORDER BY FIRSTNAME ASC

--若不需要数据的话,可以使用下面的语法
--SELECT * INTO DBO.MYTABLE_1 FROM DBO.MYTABLE WHERE 1=2

DROP TABLE DBO.MYTABLE_1

结果:


呆言呆语:
其实这个技巧不难,很多看倌都会,但当要使用到时,雄雄找不到,就...(呵呵!!!)
在文章中有讲到 MS SQL 的 Import / Export,有机会在与各位分享一下...