-1

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

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

我已将数据库脚本编写到一个.sql文件中,但我找不到针对本地.mdf文件执行它的方法。我可以创建一个.sdf不起作用的,或者连接到数据库引擎。

帮助将不胜感激!

4

2 回答 2

1

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

所以你需要这些步骤:

  1. 连接到您的本地服务器
  2. 创建一个新的数据库
  3. 针对它运行.sql脚本
  4. 分离该数据库

现在,完成所有步骤后,您可以将生成的.mdf文件从 SQL Server 数据目录复制到其他地方。

于 2012-12-19T16:33:08.483 回答
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使用相同的版本)

于 2012-12-19T16:34:10.817 回答