首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VBS (SQL )创建Server 2008 R2数据库时出错

使用VBS (SQL )创建Server 2008 R2数据库时出错
EN

Stack Overflow用户
提问于 2013-10-11 14:05:14
回答 1查看 915关注 0票数 0

我曾经在VBS中运行一个脚本,使用SQL创建一个新的数据库。这是在Server 2000中完成的,但是在Server 2008 R2下不再起作用。

脚本是这样的:

代码语言:javascript
复制
Const C_SQL_UID = "sa"
Const C_SQL_PWD = "sa"
Const C_SQL_SERVER = "dbserver"
Const C_SQL_TMPDBNAME = "TMP_DB"
Const C_SQLDIR = "d:\data"

Dim SqlServer: Set SqlServer = CreateObject("SQLDMO.SqlServer")
SqlServer.Connect C_SQL_SERVER, C_SQL_UID, C_SQL_PWD

Dim database: Set database = CreateObject("SQLDMO.Database")
Dim dbDataFile: Set dbDataFile = CreateObject("SQLDMO.DBFile")
Dim dbLogFile: Set dbLogFile = CreateObject("SQLDMO.LogFile")

database.Name = C_SQL_TMPDBNAME

dbDataFile.Name = C_SQL_TMPDBNAME
dbDataFile.PhysicalName = C_SQLDIR & "\" & C_SQL_TMPDBNAME & "_Data.mdf"
dbDataFile.PrimaryFile = True
dbDataFile.Size = 2
dbDataFile.FileGrowthType = 0 'SQLDMOGrowth_MB
dbDataFile.FileGrowth = 1

database.FileGroups.Item("PRIMARY").DBFiles.Add(dbDataFile)

dbLogFile.Name = C_SQL_TMPDBNAME & "Log"
dbLogFile.PhysicalName = C_SQLDIR & "\" & C_SQL_TMPDBNAME & "_Log.ldf"
dbLogFile.Size = 2

database.TransactionLog.LogFiles.Add(dbLogFile)

On Error Resume Next
SqlServer.Databases.Add(database)
If Err Then
    wscript.echo Now & " Error creating DB (" & Err.Number & ") " & Err.Description
End If
On Error GoTo 0

当它执行最终指令(“SqlServer.Databases.Add(数据库)”)时,我得到错误号-2147219701 .不包含任何描述。我不知道它是从哪里来的。我知道微软放弃了DMO,但是由于SMO不支持VBScript,所以我已经没有选择了。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-13 10:41:02

最后,我使用了一个好的旧ADODB连接,并在T中发出了所有请求。对于这个脚本,它只是:

代码语言:javascript
复制
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.CommandTimeout = 9999
conn.Provider = "SQLOLEDB"
conn.ConnectionTimeout = 10
conn.Open "server=" & C_SQL_SERVER & ";uid=" & C_SQL_UID & ";pwd=" & C_SQL_PWD & ";database=Master"

sql = "CREATE DATABASE " & C_DB_NAME & " "
sql = sql & "ON ( NAME = '" & C_DB_NAME & "', FILENAME = '" & C_SQLDIR & "\" & C_DB_NAME & "_Data.mdf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB ) "
sql = sql & "LOG ON( NAME = '" & C_DB_NAME & "Log', FILENAME = '" & C_SQLDIR & "\" & C_DB_NAME & "_Log.ldf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB )"
conn.Execute sql
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19320181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档