0

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

4

1 回答 1

1

解决

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

于 2014-02-11T04:04:26.320 回答