SQL - Запрос только первых 25 столбцов в этой таблице - PullRequest
2 голосов
/ 22 сентября 2011

75 столбцов в таблице - я хочу запросить только первые 25 столбцов в этой таблице без указания имени каждого столбца .... можете ли вы помочь с запросом SQL ....

Я играл со следующим:

Select Table_Name, Count(*) As ColumnCount
From   Information_Schema.Columns
Group By Table_Name
Order By Table_Name

Не соответствует моему выводу ........

Если в таблице 75 столбцов, как я могу увидеть первые 25 столбцов, не называя имя каждого столбца? Не хочу удалять столбцы. Нужно видеть только первые 25 столбцов из 75 столбцов в одной и той же таблице ..... TOP не активирован, нужно еще раз обойтись ...

Ответы [ 2 ]

4 голосов
/ 22 сентября 2011

Первые 25 столбцов в табличном запросе встроены в @query и затем выполняются. Подставьте правильное значение @target_table.

DECLARE
    @target_table sysname
,   @query nvarchar(max)

SET
    @target_table = '_dimAreaOverlay'

; with of_interest as
(
SELECT
    SS.name AS schemaname
,   T.name AS tablename
,   SC.name AS columname
FROM
    sys.schemas SS
    inner join
        sys.tables T
        ON T.schema_id = SS.schema_id
    inner join
        sys.columns SC
        ON SC.object_id = T.object_id
WHERE
    T.name = @target_table
    AND SC.column_id < 26
)
, c AS
(
    SELECT 
        STUFF((
        SELECT 
            ',' + QUOTENAME(I.columname)
        FROM
            of_interest I
        FOR XML PATH('')), 1,1, '') AS column_list
    ,   OI.tablename
    ,   OI.schemaname
    FROM
        of_interest OI
    GROUP BY
        OI.schemaname
    ,    OI.tablename
)
SELECT
    @query = 'SELECT ' 
    + C.column_list 
    + ' FROM ' 
    + QUOTENAME(C.schemaname) 
    + '.' 
    + QUOTENAME(C.tablename)
FROM C

EXECUTE(@query)
3 голосов
/ 22 сентября 2011
  1. Найдите таблицу в обозревателе объектов Management Studio.
  2. Щелкните правой кнопкой мыши и выберите Script Table As -> Select To -> New Query Editor Window
  3. Удалить ненужные столбцы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...