简体   繁体   English

SQL Server 重命名列名

[英]SQL Server rename column names

I have the following query that gathers the column names for a table:我有以下查询收集表的列名:

SELECT COLUMN_NAME 
FROM theDBNameHere.INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'markers'

That works just fine giving me the needed column names of that table.这工作得很好,给我该表所需的列名。 However, I want to rename the column names to something else.但是,我想将列名重命名为其他名称。 I tried the following:我尝试了以下方法:

SELECT  venueID AS 'Venue ID', 
        venueEventDate AS 'Venue Date', 
        venueCounty AS 'Venue County', 
        venueAdvocate AS 'Venue Advocate', 
        venueSpanish AS 'in Spanish', 
        lastUpdated AS 'Last Updated', 
        updatedBy AS 'Updated By', 
        SysSrcLoadDt AS SysSrcLoadDt 
FROM theDBNameHere.INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'markers'

The error it tosses to me is pretty much saying它向我抛出的错误几乎是在说

Invalid column name 'venueXXXXXXXX'无效的列名“venueXXXXXXXX”

How would I go about changing the default column name with using the query above?我将如何使用上面的查询更改默认列名? Is this even possible to do in the first place?这甚至可能首先做到吗?

If you want only column names:如果你只想要列名:

SELECT  venueID        AS [Venue ID], 
        venueEventDate AS [Venue Date], 
        venueCounty    AS [Venue County], 
        venueAdvocate  AS [Venue Advocate], 
        venueSpanish   AS [in Spanish], 
        lastUpdated    AS [Last Updated], 
        updatedBy      AS [Updated By], 
        SysSrcLoadDt   AS [SysSrcLoadDt] 
FROM markers
WHERE 1 = 2  -- column headers only, comment if you want rows also

or as Sean Lange proposed in comment:或正如Sean Lange在评论中提出的那样:

SELECT  '' AS [Venue ID], 
        '' AS [Venue Date], 
        '' AS [Venue County], 
        '' AS [Venue Advocate], 
        '' AS [in Spanish], 
        '' AS [Last Updated], 
        '' AS [Updated By], 
        '' AS [SysSrcLoadDt] 
WHERE 1 = 2;

LiveDemo

EDIT:编辑:

If you wanted names in one column:如果您想在一列中显示名称:

SELECT *
FROM (VALUES ('Venue ID'), ('Venue Date'), ('Venue County'),
     ('Venue Advocate'), ('in Spanish'),  ('Last Updated'),
     ('Updated By'), ('SysSrcLoadDt') ) AS t(column_name);

LiveDemo2

Output:输出:

╔════════════════╗
║  column_name   ║
╠════════════════╣
║ Venue ID       ║
║ Venue Date     ║
║ Venue County   ║
║ Venue Advocate ║
║ in Spanish     ║
║ Last Updated   ║
║ Updated By     ║
║ SysSrcLoadDt   ║
╚════════════════╝

May be you need the CASE statement可能你需要CASE语句

SELECT  CASE WHEN COLUMN_NAME = 'venueID'
             THEN 'Venue ID'
             WHEN COLUMN_NAME = 'venueEventDate'
             THEN 'Venue Date'
             WHEN COLUMN_NAME = 'venueCounty'
             THEN 'Venue County'
             -- do the rest of columns here
            END AS COLUMN_NAME
FROM theDBNameHere.INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'markers'

If you need to rename column names, use the Alter table and Rename Column keywords...如果需要重命名列名,请使用 Alter table 和 Rename Column 关键字...

ALTER TABLE table_name
RENAME COLUMN old_name to new_name;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM