我正在尝试从一个SQL服务器(源)重新创建一个数据库(MyDB)到另一个(目标)。 源位于我的本地计算机上,是SQL Server 2014. 目标位于远程计算机及其SQL Server 2012上。以下是步骤I&# 39;采取了:
osql -S target -d master -E -i scripts.sql -o output.log
1> 2 - ; 1 GT; 2 - ; 3 GT; 4> 5个6个7个8是氢。消息5133,级别16,状态1,服务器 目标,第2行目录查找文件" C:\ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ MyDB.mdf" 操作系统错误3失败(系统找不到 路径指定。)。消息1802,级别16,状态1,服务器目标,第2行 CREATE DATABASE失败。无法创建列出的某些文件名。 检查相关错误。 1 GT; 2 - ;消息5011,级别14,状态5,服务器 目标,第1行用户无权更改数据库' MyDB', 数据库不存在,或者数据库不处于该状态 允许访问检查。消息5069,级别16,状态1,服务器目标,行 1 ALTER DATABASE语句失败。
以下是" scripts.sql"的前几行:
USE [master]
GO
/****** Object: Database [MyDB] Script Date: 4/12/2016 4:30:20 PM ******/
CREATE DATABASE [MyDB]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'MyDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB.mdf' , SIZE = 513024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 262144KB )
LOG ON
( NAME = N'MyDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB_log.ldf' , SIZE = 1317504KB , MAXSIZE = 2048GB , FILEGROWTH = 131072KB )
GO
ALTER DATABASE [MyDB] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [MyDB].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [MyDB] SET ANSI_NULL_DEFAULT ON
我确实在来源上抱怨文件MyDB.mdf,但目标没有。没有目录" MSSQL12.MSSQLSERVER"在目标。我该如何解决这个问题?
答案 0 :(得分:15)
对于那些对此解决方案感兴趣的人来说,问题是没有" MSSQL12.MSSQLSERVER" 目标上的目录,因为它位于不同版本的SQL Server上,即2012.我要做的是手动创建目录,然后它开始工作。