sql server 2008:sp_RENAME表消失了

Azh*_* KG 5 sql sql-server

我通过sp_RENAME重命名了表(SQL SERVER 2008)

sp_RENAME 'dbname.scname.oldtblname' 'dbname.scname.newtblnam'
Run Code Online (Sandbox Code Playgroud)

结果消息(它是黑色的 - 所以我只是一个警告或成功的消息)就像"警告:更改对象名称的任何部分可能会破坏脚本和存储过程."

所以在这个命令之后我的表有4500万条记录消失了,我没有任何备份.这是一张新桌子.

:)你们有什么想要把我的桌子带回来吗?:)

ps是的,我的笑容不是":(",因为当问题的严重性达到阈值时,":("变成":)".

gbn*_*gbn 8

  • 这说什么?
    SSMS不会自动刷新对象资源管理器,因此它可能存在

    USE dbname SELECT OBJECT_ID('scname.newtblnam')

  • sp_rename

您只能在当前数据库中更改对象或数据类型的名称.无法更改大多数系统数据类型和系统对象的名称.

您指定了dbname,因此您可能[dbname.scname.newtblnam]在dbo架构(或类似)中有一个对象

  • 你先做了备份吗?你知道,在任何(正式)架构发生变化之前的最佳实践

FWIW,我从未使用sp_rename丢失表或其他对象


小智 5

也遇到了那个可怕的错误,这是解决方案:

--original
sp_RENAME 'dbname.scname.oldtblname', 'dbname.scname.newtblnam' 

--workaround 
sp_RENAME 'dbname.scname.[dbname.scname.newtblnam]','oldtblname' 
Run Code Online (Sandbox Code Playgroud)

[]中的名称实际上是您在sp_rename之后的TABLE名称,为了使SQL Server能够理解它,请将其放在方括号中。