当前位置:首页 » 数据仓库 » 数据库中复制表结构
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库中复制表结构

发布时间: 2022-10-28 18:15:47

① 如何复制数据库的结构

首先不是备份数据--还原数据,这样是连数据都复制过去了,方法如下:
右击A数据选择“所有任务”》》”导出脚本“,这样就导出了这个数据库所有表(可以选择,包括主键,什么的)的创建语句

② 如何将数据库中的表结构和数据复制到另一个数据库

首先,打开并连接sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”。

在第1步产生的编辑器中按”crtl+a“组合键全选内容,然后右键“复制“(或按"crtl+c"键)。

新建查询,然后右键”粘贴“(或ctrl+v);如图所示,将代码中Source_db(源数据库名)改为target_db(目标数据库名)。接着右键单击”执行“执行代码。

然后,在目标数据库的表结构中就可以看到被复制过来的表了。

③ 怎样在sql server不同的数据库之间复制表结构和数据

方式一、如果写代码
select
*
into
[目标数据库b].dbo.表名
from.
[源数据库a].dbo.表名
方式二、如果不写代码,可以用导入的方式
复制表结构(如果目标数据库已经存在,此步跳过)
1、打开并连接sql
server,在源数据库data_a(源数据库名称)上右键,然后依次点击“编写表脚本为”→“create到”→“新查询编辑器窗口”。
2、在第1步产生的编辑器中按”crtl+a“组合键全选内容,然后右键“复制“(或按"crtl+c"键)。
3、新建查询,然后右键“粘贴”(或ctrl+v);如图所示,将代码中data_a(源数据库名)改为data_b(目标数据库名)。接着右键单击”执行“执行代码。
4、在目标数据库的表结构中就可以看到被复制过来的表了。
表的数据内容复制
选中目标数据库data_b然后点击”任务“→”导入数据“。
进入”sql
server导入导出向导“,根据提示步骤操作。
选择数据源(源数据库)。
选择目标(目标数据库)、指定表复制或查询。
选择源表和源视图:设置源表和目标表后,单击“编辑映射”按钮,在弹出窗口中选中“启用标识插入”。(否则后面会出错)
一直点击“下一步”至最后完成操作。

④ 数据库表结构能不能复制到新表中

可以的,比如原来的数据库是:
表1
(路径是
C:\TEST)
要复制到的新表是:
表2
(路径是
C:\TEST)
USE
C:\TEST\表1
COPY
STRUCTURE
TO
C:\TEST\表2
这样
表1
的结构就复制到
一个空的
表2
中了.

⑤ 如何用SQL语句复制表的结构,复制整个数据库

1.复制表结构:只能复制表的字段,不能复制主键、索引等

select top 0 * into 新表名 from 原表名

2.复制整个数据库结构及数据:

create datebase Test --创建目标数据库
exec P_CopyDB @Source_DB='aspnet',@Des_DB='test' --把源数据库整个复制到目标数据库

P_CopyDB存储过程创建过程如下

-----------------------创建存储过程开始--------------------

create proc P_CopyDB
@Des_DB sysname, --目标数据库
@Obj_Type nvarchar(4000)=N'',--复制的对象类型,可以是下列字符串行表:
-- O 所有对象,D 默认值,R 规则,P 存储过程
-- T 表,TR 触发器,DT 用户定义数据类型
-- V 视图,DATA 数据,DEL 删除目标对象
@Source_DB sysname=N'', --源数据库
@ServerName sysname=N'', --服务器名
@UserName sysname=N'', --用户名,不指定则表示使用 Windows 身份登录
@pwd sysname=N'' --密码
AS
SET NOCOUNT ON
DECLARE @srvid int,@Dbid int,@S_dbid int,@D_dbid int,@TransferID int,
@err int,@src varchar(255), @desc varchar(255)

IF ISNULL(@ServerName,N'')=N'' SET @ServerName='.'--默认为本地数据库
IF ISNULL(@Source_DB,N'')=N'' SET @Source_DB=DB_NAME()

--创建sqldmo对象·
EXEC @err=sp_oacreate 'sqldmo.sqlserver',@srvid OUT
IF @err<>0 GOTO lb_Err

--连接服务器
IF ISNULL(@UserName,N'')=N'' --使用 Windows 身份登录
BEGIN
EXEC @err=sp_oasetproperty @srvid,'loginsecure',-1
IF @err<>0 GOTO lb_Err

EXEC @err=sp_oamethod @srvid,'connect',NULL,@servername
END
ELSE
EXEC @err=sp_oamethod @srvid,'connect',NULL,@servername,@UserName,@pwd

IF @err<>0 GOTO lb_Err

--获取数据库集
EXEC @err=sp_oagetproperty @srvid,'databases',@Dbid OUT
IF @err<>0 GOTO lb_Err

--选择源数据库
EXEC @err=sp_oamethod @Dbid,'item',@S_dbid OUT,@Source_DB
IF @err<>0 GOTO lb_Err

--选择目标数据库
EXEC @err=sp_oamethod @Dbid,'item',@D_dbid OUT,@Des_DB
IF @err<>0 GOTO lb_Err

--设置复制的对象
EXEC @err=sp_oacreate 'SQLDMO.Transfer',@TransferID OUT
IF @err<>0 GOTO lb_Err

--设置目标服务器信息
EXEC @err=sp_oasetproperty @TransferID,'DestServer',@ServerName
IF @err<>0 GOTO lb_Err

--设置连接用户
IF ISNULL(@UserName,N'')=N'' --使用 Windows 身份登录
BEGIN
EXEC @err=sp_oasetproperty @TransferID,'DestUseTrustedConnection',1
IF @err<>0 GOTO lb_Err
END
ELSE
BEGIN
EXEC @err=sp_oasetproperty @TransferID,'DestLogin',@UserName
IF @err<>0 GOTO lb_Err

EXEC @err=sp_oasetproperty @TransferID,'DestPassword',@pwd
IF @err<>0 GOTO lb_Err
END

--设置复制对象信息
EXEC @err=sp_oasetproperty @TransferID,'DestDatabase',@Des_DB
IF @err<>0 GOTO lb_Err

DECLARE tb CURSOR FAST_FORWARD LOCAL
FOR
SELECT Name FROM(
SELECT KeyWord=N',D,', Name=N'CopyAllDefaults' UNION ALL
SELECT KeyWord=N',O,', Name=N'CopyAllObjects' UNION ALL
SELECT KeyWord=N',R,', Name=N'CopyAllRules' UNION ALL
SELECT KeyWord=N',P,', Name=N'CopyAllStoredProceres' UNION ALL
SELECT KeyWord=N',T,', Name=N'CopyAllTables' UNION ALL
SELECT KeyWord=N',TR,', Name=N'CopyAllTriggers' UNION ALL
SELECT KeyWord=N',DT,', Name=N'CopyAllUserDefinedDatatypes' UNION ALL
SELECT KeyWord=N',V,', Name=N'CopyAllViews' UNION ALL
SELECT KeyWord=N',DATA,',Name=N'CopyData' UNION ALL
SELECT KeyWord=N',DEL,', Name=N'DropDestObjectsFirst'
)A WHERE CHARINDEX(KeyWord,
CASE WHEN ISNULL(@Obj_Type,N'')='' THEN ',O,DATA,' ELSE @Obj_Type END)>0
OPEN tb
FETCH tb INTO @src
WHILE @@FETCH_STATUS=0
BEGIN
EXEC @err=sp_oasetproperty @TransferID,@src,1
IF @err<>0 GOTO lb_Err
FETCH tb INTO @src
END
CLOSE tb
DEALLOCATE tb

--复制对象
EXEC @err=sp_oamethod @S_dbid,'Transfer',null,@TransferID
IF @err<>0 GOTO lb_Err

--结束
SET @err=0
GOTO lb_Exit

--错误处理
lb_Err:
EXEC sp_oageterrorinfo NULL, @src OUT, @desc OUT
RAISERROR(N'错误编号 %#x, 错误源 "%s", 错误描述 "%s"',16,1,@err,@src,@desc)
RETURN -1

lb_Exit:
EXEC sp_OADestroy @Dbid
EXEC sp_OADestroy @srvid
EXEC sp_OADestroy @TransferID
RETURN @err
GO

-----------------------创建存储过程结束--------------------

⑥ 在sqlserver数据库中怎么复制相同的表结构的方法

把a的表结构复制到a1表,1=2不复制数据,如果要复制数据,就不要where
select
*
into
a1
from
a
where
1=2
注意:这种方式不能复制
主键
、索引等信息
如果要全部复制,只能是在a表上按右键,选择“编写表脚本为”=》Create
然后在这个结构基础上把a改成a1(注:要在设置里选择编写索引脚本)

⑦ 在sqlserver数据库中怎么复制相同的表结构的方法

--------------新表↓要复制的源表↓
Select*IntonewTableFromsourceTable


这个语句会将sourceTable结构包括数据全部复制一份放到新表中newTable是新表的名字,在执行前newTable表不能已存在,如果只复制结构不要数据


Selecttop1*IntonewTableFromsourceTable--少要点只要一行
truncatetablenewTable--清除掉数据


关于 select into 语句:


SQL SELECT INTO 语句可用于创建表的备份复件。

SELECT INTO 语句

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

SQL SELECT INTO 语法

您可以把所有的列插入新表:

SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

或者只把希望的列插入新表:

SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename

SQL SELECT INTO 实例 - 制作备份复件

下面的例子会制作 "Persons" 表的备份复件:

SELECT *
INTO Persons_backup
FROM Persons

IN 子句可用于向另一个数据库中拷贝表:

SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons

如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域:

SELECT LastName,FirstName
INTO Persons_backup
FROM Persons

SQL SELECT INTO 实例 - 带有 WHERE 子句

我们也可以添加 WHERE 子句。

下面的例子通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表:

SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'

SQL SELECT INTO 实例 - 被连接的表

从一个以上的表中选取数据也是可以做到的。

下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:

SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P

⑧ 在sqlserver数据库中怎么复制相同的表结构的方法

12--------------新表 ↓ 要复制的源表↓Select * Into newTable From sourceTable
这个语句会将sourceTable结构包括数据全部复制一份放到新表中newTable 是新表的名字,在执行前newTable 表不能已存在,如果只复制结构不要数据
12Select top 1 * Into newTable From sourceTable --少要点只要一行truncate table newTable --清除掉数据
关于
select
into
语句:
SQL
SELECT
INTO
语句可用于创建表的备份复件。
SELECT
INTO
语句
SELECT
INTO
语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT
INTO
语句常用于创建表的备份复件或者用于对记录进行存档。
SQL
SELECT
INTO
语法
您可以把所有的列插入新表:
SELECT
*
INTO
new_table_name
[IN
externaldatabase]
FROM
old_tablename
或者只把希望的列插入新表:
SELECT
column_name(s)
INTO
new_table_name
[IN
externaldatabase]
FROM
old_tablename
SQL
SELECT
INTO
实例
-
制作备份复件
下面的例子会制作
"Persons"
表的备份复件:
SELECT
*
INTO
Persons_backup
FROM
Persons
IN
子句可用于向另一个数据库中拷贝表:
SELECT
*
INTO
Persons
IN
'Backup.mdb'
FROM
Persons
如果我们希望拷贝某些域,可以在
SELECT
语句后列出这些域:
SELECT
LastName,FirstName
INTO
Persons_backup
FROM
Persons
SQL
SELECT
INTO
实例
-
带有
WHERE
子句
我们也可以添加
WHERE
子句。
下面的例子通过从
"Persons"
表中提取居住在
"Beijing"
的人的信息,创建了一个带有两个列的名为
"Persons_backup"
的表:
SELECT
LastName,Firstname
INTO
Persons_backup
FROM
Persons
WHERE
City='Beijing'
SQL
SELECT
INTO
实例
-
被连接的表
从一个以上的表中选取数据也是可以做到的。
下面的例子会创建一个名为
"Persons_Order_Backup"
的新表,其中包含了从
Persons

Orders
两个表中取得的信息:
SELECT
Persons.LastName,Orders.OrderNo
INTO
Persons_Order_Backup
FROM
Persons
INNER
JOIN
Orders
ON
Persons.Id_P=Orders.Id_P

⑨ 如何将数据库中一张表的全部内容复制到数据库中另一张表中

1、首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”。

⑩ 如何将一个数据库的表结构复制到另一个数据库

首先,打开并连接sql
server,在源数据库source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“create到”→“新查询编辑器窗口”。
在第1步产生的编辑器中按”crtl+a“组合键全选内容,然后右键“复制“(或按"crtl+c"键)。
新建查询,然后右键”粘贴“(或ctrl+v);如图所示,将代码中source_db(源数据库名)改为target_db(目标数据库名)。接着右键单击”执行“执行代码。
然后,在目标数据库的表结构中就可以看到被复制过来的表了。