sqlserver 复制表 复制数据库存储过程的方法
2018-10-12 14:11
495 查看
在目前的工作中需要解决复制整个SqlServer数据库的问题,复制的内容包括数据库大纲、数据库中的存储过程、函数、表结构、主外键关系以及表中的所有数据等,也就是说copy版本与原数据库一模一样。经过一段时间的摸索,找到的一个比较简单的解决方案是:
(1)在复制数据库之前,先备份该数据库到文件。
(2)依据备份文件创建新的数据库,并Restore即可。
备份数据库可用如下Sql语句:
string.Format("backup database {0} to disk = '{1}';", dbName, bakFilePath) 依据备份文件创建并Restore新数据库可以使用如下存储过程实现:
(1)在复制数据库之前,先备份该数据库到文件。
(2)依据备份文件创建新的数据库,并Restore即可。
备份数据库可用如下Sql语句:
string.Format("backup database {0} to disk = '{1}';", dbName, bakFilePath) 依据备份文件创建并Restore新数据库可以使用如下存储过程实现:
CREATE PROCEDURE CopyDB
(
@newDbName varchar(50), --新数据库名称
@dbDataDirPath varchar(100), --数据库安装的Data文件夹目录路径
@soureDbName varchar(100), --源数据库名称
@soureBackupFilePATH varchar(100)--源数据库备份文件的路径
)
AS
declare @sql varchar(3000)
set @sql='
create database '+@newDbName+'
ON
(
name='+@soureDbName+'_Data,
filename='''+@dbDataDirPath+@newDbName+'_Data.mdf'',
SIZE = 10,
FILEGROWTH = 15%
)
LOG ON
(
name='''+@soureDbName+'_Log'',
filename='''+@dbDataDirPath+@newDbName+'_Log.LDF'',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB
)
--开始还原
RESTORE DATABASE '+@newDbName+' from disk='''+@soureBackupFilePATH+''' WITH REPLACE
'
exec(@sql)
GO
您可能感兴趣的文章:
相关文章推荐
- sqlserver 复制表 复制数据库存储过程的方法
- SqlServer数据库将另一个数据的的存储过程复制到本地数据库的方法
- SQLserver 数据库危险存储过程删除与恢复方法
- SQLserver 数据库危险存储过程删除与恢复方法
- SQLServer获得所有用户存储过程、根据存储过程名称获得内容、获得数据库对象创建脚本
- SQLServer】“无法对数据库'XXX' 执行删除,因为它正用于复制”的解决方法
- sql 中获取数据库名、表名、存储过程等信息的方法
- SQLServer 存储过程简介与使用方法
- [转]SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务器访问远程服务器
- 从数据库中导出所有的存储过程的4种方法
- sqlserver关于分页存储过程的优化【让数据库按我们的意思执行查询计划】
- 【SQLServer】“无法对数据库'XXX' 执行删除,因为它正用于复制”的解决方法
- SQLServer 存储过程简介与使用方法
- 答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储 过程和使用T-SQL查询数据有啥不一样;
- getStoredProcByArray_SQLSERVER获得存储过程方法
- 复制监控存储过程及失败解决方法
- SQLServer 存储过程简介与使用方法
- 数据库操作 sqlserver查询存储过程+分页
- SQL2008复制数据库过程出现错误处理方法
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。