Sql 使用sp_rename更改列名时出错。(创建了双冒号)

Sql 使用sp_rename更改列名时出错。(创建了双冒号),sql,sql-server,Sql,Sql Server,我在更改列名称时出错。我想更改SQL数据库(Microsoft SQL Server)中的列名。我成功了,但我在列名之间加了一个冒号。这就是我现在不能再改名字的原因。方括号的使用并没有解决这个问题 它不是说“table.column\u name”,而是说“table.table.column\u name” 这也会阻止我执行“select”、“drop”或“update”语句。这是因为再也找不到该列,这给了我一个错误 “在当前数据库“name\u database”中找不到名为“[table.

我在更改列名称时出错。我想更改SQL数据库(Microsoft SQL Server)中的列名。我成功了,但我在列名之间加了一个冒号。这就是我现在不能再改名字的原因。方括号的使用并没有解决这个问题

它不是说“table.column\u name”,而是说“table.table.column\u name”

这也会阻止我执行“select”、“drop”或“update”语句。这是因为再也找不到该列,这给了我一个错误
“在当前数据库“name\u database”中找不到名为“[table.new\u scheme]”的项

我所做的:

exec sp_rename 'table.old_column', 'table.new_column'
它应该是什么:

exec sp_rename 'table.old_column', 'new_column'
我阅读并使用了这篇文章(以错误的方式:|)。

现在您必须这样做,所以您现在将新列“table.new\u column”放在双引号或矩形括号中,如下所示:

exec sp_rename 'dbo.tablename."table.new_column"', 'new_column', 'COLUMN';


假设您有一个简单的表:

create table mytable (id int, test int)
您更改了第二列的名称:

exec sp_rename 'mytable.test', 'mytable.test2'
以下是如何再次重命名它:

exec sp_rename 'mytable."mytable.test2"', 'test2'
下面是一个演示:


您需要在文本字符串中分隔并标识列:

创建表dbo.YourTable(YourColumn int);
去
EXEC sys.sp_重命名N'dbo.YourTable.YourColumn',N'YourTable.NewColumn',N'COLUMN';
去
挑选*
从dbo.YourTable;
去
EXEC sp_重命名N'dbo.YourTable.[YourTable.NewColumn]',N'NewColumn','COLUMN'
去
挑选*
从dbo.YourTable;
去
删除表dbo.YourTable;

您可以使用SSMS对象资源管理器执行此操作。快照如下所示:


当您收到以下消息:“在当前数据库“name\u database”中找不到名为“[table.new\u scheme]”的项目时,您是否可以与我们分享您的尝试?代码请不要只选择更新或删除语句。。。谢谢
exec sp_rename 'mytable."mytable.test2"', 'test2'