且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

重命名所有表中的列 - SQL

更新时间:2023-11-26 22:09:46

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

Of course you don't need a cursor for this. You can use sys.columns and sys.objects to generate dynamic sql. Then simply execute it. Once you are satisfied the dynamic sql is what you want feel free to uncomment the last line.

----请注意!!!!!!----如果您更改列名,您的视图、存储过程、函数等都会被破坏.

----BE WARNED!!!!---- If you change column names your views, stored procedures, functions etc will all be broken.

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