0

我想通过不允许创建数据库的存储过程从本地计算机创建数据库。

我收到此错误:

消息 5133,级别 16,状态 1,第 1 行
文件“D:\SHA_dat\SHA.dat”的目录查找失败,出现操作系统错误 2(系统找不到指定的文件。)。
消息 1802,级别 16,状态 1,第 1 行
创建数据库失败。无法创建列出的某些文件名。检查相关错误。

我的代码在这里:

SELECT @cSQL = 'CREATE DATABASE '+@cDBName+' ON ( NAME = '''+@cDBName+'_data'''+', 
 FILENAME = ' + quotename(@cDbPath)+ ') LOG ON ( NAME = '''+@cDBName+'_Log'', 
FILENAME = ' + quotename(@cLogPath)+ ')'
select @cSQL

其中@cDBName 是指要创建的数据库名称,@cDBPath 和@cLogPath 是指用于创建 .dat 和 .log 文件的网络路径

谁能帮我?

4

1 回答 1

3

您写道@cDBPath 和@cLogPath 是网络路径。这行不通。当网络路径可供您使用并且您正在提交 时CREATE DATABASE,SQL Server 服务正在处理CREATE DATABASE. 该服务使用自己的用户帐户在自己的登录会话中运行,并且它没有与您映射的相同驱动器。因此,您不能像这样做那样使用网络驱动器。

顺便说一句,当您想从备份中恢复时,这同样适用。备份需要在本地驱动器上可用,以便 SQL Server 服务可以访问它。

于 2013-10-21T11:47:50.040 回答