【发布时间】:2011-04-06 14:21:30
【问题描述】:
有人将我们的 Users 表重命名为 SYSUsers,这是一个关键的 sql 表名。有没有办法重命名这个表?
我尝试右键单击表并重命名,并在其上运行sp_RENAME,但两者都试图重命名系统 sysusers 表而不是用户创建的表。我什至无法从[MyDatabase].[dbo].[SYSUsers] 中选择或导出数据,因为它是从 sql server sysusers 表而不是用户创建的表中读取的。
我们使用的是 SQL Server 2005。
【问题讨论】:
-
“有人将我们的用户表重命名为 SYSUsers”——他们是在大火上烤吗?他们是如何获得这样做的权限的?在火上腾出另一个空间!
-
这不是表名的正确大小写。大概在区分大小写的排序规则中,您不会遇到这个问题。
-
@Rachel - 如果它不在生产中,一种解决方法可能是暂时将数据库排序规则更改为 CS 重命名表,然后切换回来。
-
@Rachel - 这是我建议的数据库默认排序规则。
ALTER DATABASE [YourDB] COLLATE SQL_Latin1_General_CP1250_CS_AS(或任何其他区分大小写的排序规则)我在一个区分大小写的实例上工作,所以我无法测试这是否可行。我可以确认创建一个名为SYSUsers的表没有给我带来任何问题,但是以小写字母进行操作! -
@Martin 谢谢,那行得通。如果您将其发布为答案,我会接受它
标签: sql-server rename system-tables