J'essaie de recréer une base de données (MyDB) d'un serveur SQL (Source) à un autre (Target). Source est situé sur ma machine locale et est SQL Server 2014. Target est situé sur une machine distante et c'est SQL Server 2012. Voici les étapes que j'ai suivies:
osql -S target -d master -E -i scripts.sql -o output.log
1> 2> 1> 2> 3> 4> 5> 6> 7> 8> Msg 5133, niveau 16, état 1, cible du serveur, recherche de répertoire de ligne 2 pour le fichier "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\MyDB.mdf "a échoué avec l'erreur 3 du système d'exploitation (le système ne peut pas trouver le chemin spécifié.). Msg 1802, niveau 16, état 1, cible du serveur, ligne 2 CREATE DATABASE a échoué. Certains noms de fichiers répertoriés n'ont pas pu être créés. Vérifiez les erreurs liées. 1> 2> Msg 5011, niveau 14, état 5, cible du serveur, ligne 1 L'utilisateur n'est pas autorisé à modifier la base de données 'MyDB', la base de données n'existe pas ou la base de données n'est pas dans un état permettant les vérifications d'accès. Échec de l'instruction Mster 5069, niveau 16, état 1, cible du serveur, ligne 1 ALTER DATABASE.
Voici les premières lignes de "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
J'ai le fichier MyDB.mdf à l'endroit dont il se plaint le Source, mais pas le Target. Il n'y a pas de répertoire "MSSQL12.MSSQLSERVER" sur Target. Comment puis-je réparer cela?
Pour ceux intéressés par la solution à cela, le problème était qu'il n'y avait pas de répertoire "MSSQL12.MSSQLSERVER" sur Target car il se trouve sur une version différente de SQL Server, à savoir 2012. Ce que je devais faire était créer le répertoire manuellement et il a commencé à fonctionner après cela.