我目前负责维护旧版软件。目前我遇到SQLDMO问题如下:
//This function is used to create sql query for drop and create table
Function GenerateScript(ByVal pObjectType As String, ByVal pObjectName As String) As String
Dim sSQL As String = ""
If (pObjectType.ToLower() = "user") Then
If Not IsNothing(db.Users.Item(pObjectName)) Then
sSQL = db.Users.Item(pObjectName).Script(SQLDMO.SQLDMO_SCRIPT_TYPE.SQLDMOScript_Drops)
sSQL = sSQL + db.Users.Item(pObjectName).Script()
End If
Else
If Not IsNothing(db.GetObjectByName(pObjectName)) Then
sSQL = db.GetObjectByName(pObjectName).Script(SQLDMO.SQLDMO_SCRIPT_TYPE.SQLDMOScript_Drops)
sSQL = sSQL + db.GetObjectByName(pObjectName).Script() //Error occur here
End If
End If
Return sSQL
End Function
我的数据库中有大约20个表,但只有部分表重现了异常:
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '*'.
请告诉我导致问题的原因以及如何解决问题
更新 我尝试了2个数据库,发现它在一个数据库中运行正常,但在另一个数据库中产生问题。但是这些数据库具有相同的表结构,那么为什么错误发生在一个数据库中而不会发生在另一个数据库中呢?
答案 0 :(得分:1)
<强>解决强>
导致问题的是数据库的兼容性。它与与sql server 2005(90)兼容的数据库运行正常,并与与sql server 2008或更高版本兼容的数据库产生错误。我需要做的就是改变数据库与2005的兼容性