--复制表结构
SELECT * INTO #TEMP_TAB FROM SOURCE_TAB WHERE 1<>1
--复制结构及数据(快速操作,不写入日志)
SELECT * INTO #TEMP_TAB FROM SOURCE_TAB
--复制数据,表#TEMP_TAB已存在
INSERT INTO #TEMP_TAB SELECT * FROM SOURCE_TAB
--带序号复制,只能用此写法
SELECT IDENTITY(INT,1,1) ID, * INTO #TEMP_TAB FROM SOURCE_TAB
--随机复制N条数据
SELECT TOP N * INTO #TEMP_TAB FROM SOURCE_TAB ORDER BY NEWID()
--复制前10~20行数据
SELECT TOP 10 * INTO #TEMP_TAB FROM (SELECT TOP 20 * FROM SOURCE_TAB ORDER BY ID ASC) AS TEMP_TABNAME ORDER BY ID DESC
--删除表时同时复制数据到其他表
DELETE SOURCE_TAB
OUTPUT DELETED.VALUE1,DELETED.VALUE2,DELETED.VALUE3
INTO #TEMP_TAB(VALUE1,VALUE2,VALUE3)
--WHERE ID<3
--远程复制数据
SELECT * INTO #TEMP_TAB FROM OPENROWSET('SQLOLEDB','SERVERNAME';'USERNAME';'PASSWORD',DBNAME.DBO.TABLENAME)
SELECT * INTO #TEMP_TAB FROM OPENDATASOURCE('SQLOLEDB','DATA SOURCE=IP(OR SERVERNAME);USER ID=USERNAME;PASSWORD=PASSWORD').DBNAME.DBO.TABLENAME
--插入数据
INSERT INTO #TEMP_TAB(VALUE1,VALUE2,VALUE3)
SELECT VALUE11 , VALUE12 , VALUE13
UNION ALL
SELECT VALUE21 , VALUE22 , VALUE23
UNION ALL
SELECT VALUE31 , VALUE32 , VALUE33
--SQLSERVER 2008 插入数据 NEW
INSERT INTO #TEMP_TAB
VALUES
(VALUE11 , VALUE12 , VALUE13),
(VALUE21 , VALUE22 , VALUE23),
(VALUE31 , VALUE32 , VALUE33)
--另外!网上还有一种创建相同表结构的写法(如下,简称为 CTAS),但是行不通
CREATE TABLE #TEMP_TAB AS SELECT * FROM SOURCE_TAB
--
原文地址:http://blog.csdn.net/kk185800961/article/details/9176197
sqlserver 表及结构的复制和数据插入
最新推荐文章于 2023-04-26 09:40:44 发布