将sql脚本转换为mdf

时间:2012-12-19 16:29:47

标签: sql-server

我正在研究明天必须上交的项目。对于这个项目,我使用在远程服务器上运行的SQL Server Express数据库。

现在,我需要从远程数据库生成.mdf文件。我到处搜索,我找不到合适的解决方案。

我已将数据库编写为.sql文件的脚本,但我找不到针对本地.mdf文件执行它的方法。要么我可以创建一个无效的.sdf,要么连接到数据库引擎。

非常感谢帮助!

2 个答案:

答案 0 :(得分:1)

.mdf是SQL Server的数据文件格式。

所以你需要这些步骤:

  1. 连接到本地服务器
  2. 创建新数据库
  3. 针对它运行.sql脚本
  4. 分离该数据库
  5. 现在,完成所有步骤后,您可以将生成的.mdf文件从SQL Server数据目录复制到其他位置。

答案 1 :(得分:0)

否您无法从远程数据库生成MDF文件 您可以使用如下脚本创建本地数据库:

CREATE DATABASE [test_db] ON  PRIMARY 
( NAME = N'test_db', FILENAME = N'D:\MSSQL\test_db.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'test_db_log', FILENAME = N'D:\MSSQL\test_db_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
ALTER DATABASE [test_db] SET COMPATIBILITY_LEVEL = 100
GO
ALTER DATABASE [test_db] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [test_db] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [test_db] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [test_db] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [test_db] SET ARITHABORT OFF 
GO
ALTER DATABASE [test_db] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [test_db] SET AUTO_CREATE_STATISTICS ON 
GO
ALTER DATABASE [test_db] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [test_db] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [test_db] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [test_db] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [test_db] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [test_db] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [test_db] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [test_db] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [test_db] SET  DISABLE_BROKER 
GO
ALTER DATABASE [test_db] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [test_db] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [test_db] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [test_db] SET  READ_WRITE 
GO
ALTER DATABASE [test_db] SET RECOVERY FULL 
GO
ALTER DATABASE [test_db] SET  MULTI_USER 
GO
ALTER DATABASE [test_db] SET PAGE_VERIFY CHECKSUM  
GO
USE [test_db]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [test_db] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO

然后运行sql脚本来创建表格并用数据填充它们 在此之后,您有两个选择。

  • 在客户计算机上重复此过程
  • 分离数据库并获取MDF和LDF文件给您的客户, 然后尝试重新连接它

(当然这假设两个SqlServer使用相同的版本)