如果我尝试执行以下查询:
EXEC sp_rename 'ENG_TEst.[ENG_Test_A/C_TYPE]', 'ENG_Test_AC_TYPE', 'COLUMN'
我收到错误:
参数@ objname是 模棱两可或声称@objtype (COLUMN)错了。
我该如何解决?
答案 0 :(得分:24)
螺母。几个星期前我遇到了同样的错误,经过大量的浪费时间想出如何让它发挥作用 - 但我已经忘记了它。 (没有多大帮助,除了说是,可以做到。)
您是否尝试过不同的括号组合,或者有没有括号的组合? e.g。
EXEC sp_rename 'ENG_TEst.ENG_Test_A/C_TYPE', 'ENG_Test_AC_TYPE', 'COLUMN';
EXEC sp_rename '[ENG_TEst].[ENG_Test_A/C_TYPE]', 'ENG_Test_AC_TYPE', 'COLUMN';
EXEC sp_rename '[ENG_TEst].[ENG_Test_A/C_TYPE]', '[ENG_Test_AC_TYPE]', 'COLUMN';
EXEC sp_rename '[ENG_TEst].ENG_Test_A/C_TYPE', 'ENG_Test_AC_TYPE', 'COLUMN';
如果一切都失败了,总会有
答案 1 :(得分:14)
您是否在正确的数据库中运行查询?即,
Use MyDatabase;
GO
EXEC sp_rename 'ENG_TEst.[ENG_Test_A/C_TYPE]', 'ENG_Test_AC_TYPE', 'COLUMN';
GO
答案 2 :(得分:14)
这有效
EXEC sp_rename
@objname = 'ENG_TEst."[ENG_Test_A/C_TYPE]"',
@newname = 'ENG_Test_A/C_TYPE',
@objtype = 'COLUMN'
答案 3 :(得分:5)
我今天遇到了这个问题,并将其与之合作:
EXECUTE sp_rename N'dbo.table_name.original_field_name', N'new_field_name', 'COLUMN'
为了获得这种语法,我遵循了上面的Martin Smith的建议 - 在设计视图中打开表,重命名列,然后单击表设计器|生成更改脚本。这产生了下面的脚本,它分两步重命名:
/* To prevent any potential data loss issues, you should review this script in
detail before running it outside the context of the database designer.*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
EXECUTE sp_rename N'dbo.table_name.original_field_name', N'Tmp_new_field_name_1', COLUMN'
GO
EXECUTE sp_rename N'dbo.table_name.Tmp_new_field_name_1', N'new_field_name', 'COLUMN'
GO
ALTER TABLE dbo.table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
答案 4 :(得分:1)
我也有这个问题 - 非常讨厌,但我自己还没有找到一个令人满意的sql答案(除了涉及创建临时表等的冗长的答案),我没有时间去探讨它的结论我我喜欢。
最后只使用SQL Server Management Studio来选择表格,右键单击列并点击重命名。 simples!
显然,我宁愿知道如何在没有gui的情况下做到这一点,但有时你只需要完成它!答案 5 :(得分:1)
更新代码第一个MVC5数据库时出现此错误。从我的数据库中删除(右键单击,删除)所有表,并从Migration文件夹中删除迁移对我有用。
答案 6 :(得分:0)
以下两项工作(as discussed here)。
exec sp_rename 'ENG_TEst.[[ENG_Test_A/C_TYPE]]]' ,
'ENG_Test_A/C_TYPE', 'COLUMN'
exec sp_rename 'ENG_TEst."[ENG_Test_A/C_TYPE]"' ,
'ENG_Test_A/C_TYPE', 'COLUMN'
答案 7 :(得分:0)
我在这个网站上尝试了所有可能的解决方案,但对我来说没有任何效果。我最终在设计模式下做了。右键单击表名,然后单击“设计”。然后我改名并保存在这里。工作简单。
答案 8 :(得分:-1)
只是尝试删除链接到此COLUMN的STATISTICS INDEXES。
最诚挚的问候。