SQLDMO - [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]'*'附近的语法不正确

时间:2014-02-11 03:07:22

标签: sql-server vb.net sqldmo

我目前负责维护旧版软件。目前我遇到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个数据库,发现它在一个数据库中运行正常,但在另一个数据库中产生问题。但是这些数据库具有相同的表结构,那么为什么错误发生在一个数据库中而不会发生在另一个数据库中呢?

1 个答案:

答案 0 :(得分:1)

<强>解决

导致问题的是数据库的兼容性。它与与sql server 2005(90)兼容的数据库运行正常,并与与sql server 2008或更高版本兼容的数据库产生错误。我需要做的就是改变数据库与2005的兼容性