Sql server MS SQL 2008-创建不包含数据的数据库副本

Sql server MS SQL 2008-创建不包含数据的数据库副本,sql-server,iis,schema,Sql Server,Iis,Schema,在MS SQL Server 2008 R2中,如何基于旧数据库的架构创建新数据库,但不同时复制任何数据?我正在使用SQL Server management studio。有一个很好的脚本向导可以帮助您。您可以在“对象资源管理器->任务->生成脚本”中右键单击数据库进行尝试。可以从数据库中选择要导出的对象 在SQL Server Management Studio中,您可以通过菜单单击对象并选择 "Script [Object] As" ... "CREATE to"... "New Quer

在MS SQL Server 2008 R2中,如何基于旧数据库的架构创建新数据库,但不同时复制任何数据?我正在使用SQL Server management studio。

有一个很好的脚本向导可以帮助您。您可以在“对象资源管理器->任务->生成脚本”中右键单击数据库进行尝试。可以从数据库中选择要导出的对象

在SQL Server Management Studio中,您可以通过菜单单击对象并选择

"Script [Object] As" ... "CREATE to"... "New Query Window"
您需要为要创建的每个对象创建脚本

如果您想完成全部工作,请单击数据库上的菜单,然后选择


任务。。。生成脚本并按照向导操作,如下所示:

右键单击数据库并选择任务->生成脚本

然后可以选择所需的所有对象或仅选择某些对象

您应该查看一些脚本选项:

脚本使用数据库-如果要使用其他名称创建新数据库,则应将其设置为false。 索引和触发器不是默认脚本 登录和对象级权限未作为默认脚本编写 为依赖对象生成脚本-默认设置为false,但您可能希望将其更改为true,以确保所有对象都已编写脚本。 您可以将它们创建到新的查询窗口中,也可以将它们保存到SQL文件中。

Summary 创建此脚本是为了更容易地在非常不同的数据库模式之间对主要网站进行数据库迁移。此脚本将执行以下任务:

使用数据备份架构的最新良好版本。示例:Dev数据库 删除目标数据库(如果存在) 将备份还原到目标测试数据库 删除目标数据库中的所有数据,不考虑约束和外键 使用说明 第一部分 您可能希望使用“备份”对话框从SSMS中获取此代码。单击圆圈图标以获取特定场景的脚本

如果执行此操作,请记住在生成脚本之前在备份选项中设置覆盖-我们不希望附加到备份集。 第二部分 在删除目标数据库之前,不要忘记包含USE MASTER命令。如果在单个SSMS会话中第二次运行此脚本,如果不包含此命令,将出现致命错误。我们在这里还使用DROP DATABASE,不仅可以删除过时的TargetDB,还可以删除其文件注意,DB必须处于活动状态才能正常工作

第三部分 您可能希望使用SSMS对话框为您生成此初始还原脚本,类似于您在第1部分备份中所做的操作

第四部分 不要在这里使用Truncate-如果您有外键,它将不起作用

源代码在SSMS中运行
感谢你的回答!所有这些都是很好的答案,我让它起作用了仅供参考,如果视图、存储过程、函数。。。按预期进行加密:
----------------------------------------------------------------------------------------
-- CREATE AN EMPTY COPY OF DATABASE
----------------------------------------------------------------------------------------
/* PART 1: Backup the good database */
BACKUP DATABASE [OriginalDB] 
        TO  DISK = N'd:\backup.bak' WITH NOFORMAT, INIT,  
            NAME = N'OriginalDB-Full Database Backup', SKIP, 
        NOREWIND, NOUNLOAD,  STATS = 33
GO

/* PART 2: If your destination database already exists, drop it */
USE master -- Make sure to include this -- it allows you to reuse script in same SSMS session
DROP DATABASE [migration]

/* PART 3: Restore the backup to the new location */
RESTORE DATABASE [TargetDB] 
        FROM  DISK = N'D:\backup.bak' WITH  FILE = 1,  
        MOVE N'OriginalDB' TO N'D:\sql data\TargetDB.mdf',  
        MOVE N'OriginalDB' TO N'C:\SQL Data\TargetDB_1.ldf',  
        NOUNLOAD,  STATS = 33
GO

/* PART 4: Delete all tables' data in the migration testing target */
PRINT N'Clearing [TargetDB]'
USE [TargetDB]
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"       -- disable all constraints
EXEC sp_MSForEachTable "DELETE FROM ?"                  -- delete data in all tables
exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"  -- enable all constraints
----------------------------------------------------------------------------------------
-- BLANK DATABASE COPY CREATED, READY FOR TESTING
----------------------------------------------------------------------------------------