SqlServer 使用T-SQL单纯的复制表数据

今天用Sql Server Manager Studio 先复制一个库建立一个新库出来,各种报错,也不知道是为什么,连备份再还原都不行,算了,自己写个SQL 脚本来执行算了......

坏处是视图,存储过程和函数都没有复制过来

复制代码
-- 设置源数据库和目标数据库的名称
DECLARE @SourceDBName NVARCHAR(128) = 'BestraneConnect';
DECLARE @TargetDBName NVARCHAR(128) = 'BestraneConnect_AppConfig';
DECLARE @SQL NVARCHAR(MAX);

-- 判断目标数据库是否存在,如果存在则删除
IF DB_ID(@TargetDBName) IS NOT NULL
BEGIN
-- 将目标数据库设置为单用户模式,并回滚挂起的事务
SET @SQL = 'ALTER DATABASE ' + QUOTENAME(@TargetDBName) + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE;';
EXEC sp_executesql @SQL;

-- 删除目标数据库
SET @SQL = 'DROP DATABASE ' + QUOTENAME(@TargetDBName) + ';';
EXEC sp_executesql @SQL;
END

-- 创建目标数据库
SET @SQL = 'CREATE DATABASE ' + QUOTENAME(@TargetDBName) + ';';
EXEC sp_executesql @SQL;

-- 生成动态 SQL 语句,自动复制源数据库的所有表的结构到目标数据库
SET @SQL = '';

SELECT @SQL = @SQL +
'SELECT * INTO ' + QUOTENAME(@TargetDBName) + '.dbo.' + QUOTENAME(t.name) +
' FROM ' + QUOTENAME(@SourceDBName) + '.dbo.' + QUOTENAME(t.name) + ';'
FROM sys.tables t
WHERE t.type = 'U';

-- 执行动态 SQL 语句
EXEC sp_executesql @SQL;
相关推荐
h***346311 分钟前
Redis安装教程(Windows版本)
数据库·windows·redis
泡沫·2 小时前
5.MariaDB数据库管理
数据库·mariadb
i***51262 小时前
【数据库】MySQL的安装与卸载
数据库·mysql·adb
数白2 小时前
Oracle 数据迁移最佳实践(不使用第三方工具)
数据库·oracle
周杰伦fans2 小时前
C# 中的**享元工厂**模式
开发语言·数据库·c#
空空kkk2 小时前
SpringMVC——拦截器
java·数据库·spring·拦截器
J***51683 小时前
MySql中的事务、MySql事务详解、MySql隔离级别
数据库·mysql·adb
SelectDB3 小时前
Apache Doris 中的 Data Trait:性能提速 2 倍的秘密武器
数据库·后端·apache
i***27953 小时前
Spring boot 3.3.1 官方文档 中文
java·数据库·spring boot
TDengine (老段)3 小时前
TDengine 日期函数 DATE 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据