gpt4 book ai didi

sql - 重命名所有表中的列 - SQL

转载 作者:行者123 更新时间:2023-12-04 14:38:07 29 4
gpt4 key购买 nike

我需要重命名数据库中所有表中的列。
因此必须将所有表中的“OldColumn”列重命名为“NewColumn”

我可以使用此查询获取具有此列的表列表:

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME= <Column Name>

但是如何尽可能简单地在所有表中重命名它,而不必编写游标?

最佳答案

当然,您不需要为此使用游标。您可以使用 sys.columns 和 sys.objects 来生成动态 sql。然后简单地执行它。一旦您对动态 sql 感到满意,请随时取消对最后一行的注释。

- - 被警告!!!! - -
如果您更改列名,您的 View 、存储过程、函数等都将被破坏。

declare @CurrentColumnName sysname = 'asdf'
, @NewColumnName sysname = 'qwer'
, @SQL nvarchar(MAX) = ''

select @SQL = @SQL + 'EXEC sp_rename ''' + o.name + '.' + c.name + ''', ''' + @NewColumnName + ''', ''COLUMN'';'
from sys.columns c
join sys.objects o on o.object_id = c.object_id
where c.name = @CurrentColumnName

select @SQL

--exec sp_executesql @sql

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

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