如何解决如何在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 & \"\'\"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。