我目前负责维护遗留软件。目前,我对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 '*'.请告诉我问题的原因和解决方法。
更新我尝试了两个数据库,并发现它在一个DB中运行ok,但在另一个DB中产生问题。但是这些数据库具有相同的表结构,那么为什么错误发生在一个数据库中,而不发生在另一个数据库中呢?
发布于 2014-02-11 04:04:26
解决
是数据库的兼容性导致了这个问题。它与与sql server 2005 (90)兼容的数据库运行良好,并与与sql server 2008或更高版本兼容的数据库产生错误。我所需要做的就是将数据库改为与2005年兼容的数据库。
https://stackoverflow.com/questions/21692252
复制相似问题