SQL Server 将一个数据库中所有表复制到另一个数据库中

复制数据库表到新数据库的SQL脚本示例
该文提供了一个SQL脚本,用于创建名为RESSET2的新数据库,并从Company_report20221019数据库中复制所有用户表到新数据库中。脚本涉及到数据库的大小设置、文件增长规则,以及使用游标遍历并复制表结构和数据。

1.创建resset2数据库,将Company_report20221019数据库中所有表复制到resset2数据库中

CREATE DATABASE resset2
       ON
       PRIMARY
       (
              NAME='resset2_data1',
              FILENAME='D:\database\resset2_data1.mdf',
              SIZE=20MB,
              MAXSIZE=UNLIMITED,
              FILEGROWTH=10%
       ),
       (
              NAME='resset2_Log1',
              FILENAME='D:\database\resset2_log1.ldf',
              SIZE=50MB,
              MAXSIZE=100MB,
              FILEGROWTH=10MB
       );
GO
---定义两个变量,一个是存储表名称的;一个是存储插入语句的
declare @tablename varchar(50),@SQL varchar(500)
---创建游标
declare RessetTest cursor for
---查看数据库中的表名
select name from sysobjects where xtype='u'
---打开游标
open RessetTest
---逐行读取游标中的数据存储到@tablename中
fetch next from RessetTest into @tablename
---查看每一条数据读取是否成功,为0时成功,-1时失败
while @@fetch_status=0
---循环执行@sql中的语句 每次从fetch next from RessetTest into @Tablename中读取一行
       begin
                     SET @Sql='select * into resset2.dbo.'+@TableName +' from  [Company_report20221019].[dbo].'+@TableName
                     Exec (@Sql)
                     fetch next from RessetTest into @Tablename
       end
close RessetTest
deallocate RessetTest

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值