seq*_*ner 90 sql t-sql sql-server-2008 sql-server-2008-r2
我在数据库DB中有一个表ABC.我想在同一个DB中创建名为ABC_1,ABC_2,ABC_3的ABC副本.如何使用Management Studio(最好)或SQL查询来做到这一点?
这适用于SQL Server 2008 R2.
Mah*_*mal 182
用途SELECT ... INTO:
SELECT *
INTO ABC_1
FROM ABC;
Run Code Online (Sandbox Code Playgroud)
这将创建一个ABC_1具有相同列结构ABC并包含相同数据的新表.但是,约束(例如,键,默认值)不会被复制.
您可以每次使用不同的表名多次运行此查询.
如果您不需要复制数据,只需创建具有相同列结构的新空表,请添加WHERE带有falsy表达式的子句:
SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;
Run Code Online (Sandbox Code Playgroud)
Joh*_*van 16
在SSMS中,在对象资源管理器中展开数据库,转到表格,右键单击您感兴趣的表格,然后选择" 脚本表格为"," 创建到"," 新建查询编辑器窗口".执行查找和替换(CTRL + H)以更改表名称(即放入ABC" 查找内容"字段并ABC_1在" 替换为"中单击" 确定").
显示如何通过SQL执行此操作的其他答案也运行良好,但与此方法的区别在于您还将获得任何索引,约束和触发器.
如果要包含数据,请在创建此表后运行以下脚本以从ABC复制所有数据(如果您有标识字段,则保留相同的ID值):
set identity_insert ABC_1 on
insert into ABC_1 (column1, column2) select column1, column2 from ABC
set identity_insert ABC_1 off
Run Code Online (Sandbox Code Playgroud)
如果要复制具有所有约束和键的表,请执行以下步骤:
然后,要复制数据,请运行以下脚本:
SET IDENTITY_INSERT DuplicateTable ON
INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... )
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable
SET IDENTITY_INSERT DuplicateTable OFF
Run Code Online (Sandbox Code Playgroud)
第一个选项
select *
into ABC_1
from ABC;
Run Code Online (Sandbox Code Playgroud)
第二个选项:使用SSIS,即在对象资源管理器中右键单击数据库>所有任务>导出数据
| 归档时间: |
|
| 查看次数: |
129642 次 |
| 最近记录: |