如何在T-SQL中更改SQL Server列名?

Kum*_*mar 6 sql t-sql sql-server

我有一个包含600多列的表,这些列是从列名中CSV带有特殊字符的文件导入的% _ -.有没有办法更改列名以删除这些特殊字符?

代码可以在T-SQL中.

gbn*_*gbn 9

sp_rename

EXEC sp_rename 'table.[Oh%Dear]', 'OhDear', 'COLUMN';
Run Code Online (Sandbox Code Playgroud)

工作示例([ ]在sp_rename中不确定)

CREATE TABLE foo ([Oh%Dear] int)

EXEC sp_rename 'foo.[Oh%Dear]', 'OhDear', 'COLUMN'

EXEC sys.sp_help 'foo'
Run Code Online (Sandbox Code Playgroud)


Cad*_*oux 8

您可以查询INFORMATION_SCHEMA.COLUMNS并生成sp_rename脚本以重命名列.

SELECT 'EXEC sp_rename ''' + TABLE_NAME + '.' + QUOTENAME(COLUMN_NAME) + ''', ''' + REPLACE(COLUMN_NAME, '%', '') + ''', ''COLUMN''; '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%[%]%'
Run Code Online (Sandbox Code Playgroud)

这是一个实际的可运行示例的永久链接


bug*_*ixr 5

你能用这个吗?

sp_RENAME 'Table.ColumnName%', 'NewColumnName' , 'COLUMN'
Run Code Online (Sandbox Code Playgroud)