gpt4 book ai didi

sql-server-2005 - 在 SQL Server 中重命名列的问题

转载 作者:行者123 更新时间:2023-12-04 22:08:00 25 4
gpt4 key购买 nike

所以我试图将表中的一列从 Conversion_Fee_PerShare 重命名为 Conversion Fee

我在网上查了一下,发现语法是:

sp_RENAME 'TableName.[OldColumnName]', '[NewColumnName]', 'COLUMN'

我将查询写为:
sp_RENAME 'dbo.AllocationDetails.[Conversion_Fee_Per_Share]' , '[Conversion_Fee]', 'COLUMN'

列名现在变成了 [Conversion_Fee] 而不是 Conversion_Fee
现在,如果我想像这样再次重命名:
sp_RENAME 'dbo.AllocationDetails.[Conversion_Fee]' , 'Conversion_Fee', 'COLUMN'

它给了我一个错误说:

Msg 15248, Level 11, State 1, Procedure sp_rename, Line 213 Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.



我试图改变表删除列分配细节。[Conversion_Fee] 它也没有那样工作。

什么是正确的语法?

最佳答案

/*Initial Table*/  
CREATE TABLE AllocationDetails
(
Conversion_Fee_Per_Share FLOAT
)

/*Faulty Rename*/
EXEC sp_rename
'dbo.AllocationDetails.[Conversion_Fee_Per_Share]',
'[Conversion_Fee]',
'COLUMN'

/*Fixed Rename*/
EXEC sp_rename
'dbo.AllocationDetails.[[Conversion_Fee]]]',
'Conversion_Fee',
'COLUMN'

DROP TABLE AllocationDetails

在第二个 sp_rename 调用中使用的列名是 SELECT QUOTENAME('[Conversion_Fee_Per_Share]') 返回的。

或者更直接地可以使用
EXEC sp_rename
'dbo.AllocationDetails."[Conversion_Fee]"',
'Conversion_Fee',
'COLUMN'

对于该存储过程, QUOTED_IDENTIFIER 始终设置为 on,因此这不依赖于您在 session 设置中启用它。

关于sql-server-2005 - 在 SQL Server 中重命名列的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5330070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com