创建数据库错误

时间:2013-10-21 11:00:04

标签: sql-server tsql

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

我收到了这个错误:

  

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

我的代码在这里:

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文件的netork路径

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

你写的是@cDBPath和@cLogPath是网络路径。这不行。虽然网络路径可供您使用,并且您正在提交CREATE DATABASE,但SQL Server服务正在处理CREATE DATABASE。该服务使用自己的用户帐户在其自己的登录会话中运行,并且它没有映射到的相同驱动器。因此,您无法使用网络驱动器。

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