如何在SQL Server中删除多个表,如%…%

|| 我试图从vb.net中的“ 0”常规删除特定的表。这是代码,但是不起作用。
Try
    Dim MyCommand As New Odbc.OdbcCommand(\"\", MyConnection)
    MyCommand.CommandText = \"drop from sys.tables where tabname like \'% \" & span & \"%\'\"
    Dim result As Integer = MyCommand.ExecuteNonQuery
    MyCommand.Dispose()
Catch ex As Exception
End Try
    
已邀请:
        请不要尝试更改sysviews数据。它们仅供您参考。您可以通过执行DDL命令来更改该数据。 在您的情况下,每张桌子需要一个
DROP TABLE tablename
。 您可以使用sys.tables来获取要执行execute3ѭ的表的列表,但是
DROP
必须是单独的命令。 另外,最好习惯正确的Dispose模式:
Using MyCommand As New Odbc.OdbcCommand(\"drop table foo;\", MyConnection)
    MyCommand.ExecuteNonQuery()  
End Using
    
        您必须循环并显式发出单个DROP TABLE。 您可以使用DROP TABLE调用将其分批处理为一个调用。 编辑: 还有dbo.xp_execresultset可以为您生成它。老实说,我也不知道它是否仍在SQL Server 2005中。这是未记录的,因此YMMV     
        您应该浏览sys.tables并找到与您的搜索相对应的所有表。然后,您将针对其中每一个发送以下指令:
MyCommand.commandText = \"Drop Table \'\" & tableName & \"\'\"
    

要回复问题请先登录注册