我试图从一个SQL服务器(源)重新创建一个数据库(MyDB )到另一个(目标).源位于我的本地计算机上,是SQL Server 2014. 目标位于远程计算机上,它是SQL Server 2012.以下是我采取的步骤:
osql -S target -d master -E -i scripts.sql -o output.log
1> 2> 1> 2> 3> 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> 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 …Run Code Online (Sandbox Code Playgroud) 我尝试以这种格式运行我的软件的更新脚本:
osql.exe -i"path\to\script"-U"user"-P"Password"-S"sqlserver的位置"-d"数据库名称"-n -b
大多数脚本都采用相同的格式,并且都以GO结尾.很多它们运行得很好,但随机脚本一直返回错误而不会运行.错误是"第1行'∩'附近的语法不正确.脚本可能就像INSERT一样简单,但总是出现这个错误.我似乎无法在网上找到任何能够帮助我的东西.谁能提供任何见解?
脚本可以手动运行.另外一件有趣的事情是,如果我创建一个新的文本文档并将脚本粘贴到新文件中并将其更改为.sql并运行该文件,那么它的工作正常.我只是为所有"破碎"的脚本执行此操作,但它会继续发生在新的脚本上,最终会发生在已更改的脚本上.
我的一个朋友抱怨他的系统管理员设置的某些安全设置禁止SQL管理工作室快递.我建议使用OSQL

我的问题是
我需要一些基本的命令,如附加,分离和处理SQL Express数据库的最佳方式.有任何想法吗?