我首先在SQL Server 2008中删除一个表(之后它显示该命令已成功执行的消息)。
然后我尝试创建一个具有相同名称的表,它显示了一个错误。
关闭SSMS窗口并重新打开它后,它尝试再次创建具有相同名称的表,并且成功。
发生了什么事?
答案 0 :(得分:2)
您不能在sql server中的同一批处理中删除并创建相同的表 见MSDN
他们的例子使用GO来打破这两个命令。半结肠可能有效,
Drop Table ......; 创建表,,,;
可能
Begin Transaction
Drop Table...
Commit Transaction
Create Table
当然或者将它分成两个命令,这就是GO在SQL Server管理器的查询窗口中所做的。
如果你把它拆开了,那么在尝试删除它之前检查表是否存在可能是明智的,而在尝试创建它之前它是不行的。