Displaying the order of the columns of a tableWhy should I create an ID column when I can use others as key fields?How do you create a relationship to a non-primary key in SQL Server?Oracle GoldenGate add trandata errorsError while executing SSIS package which contains Script component through SQL Server Agent JobShould I mark a composite index as unique if it contains the primary key?Can I rely on reading SQL Server Identity values in order?Order by custom filter without certain dataSQL Server query problem when selecting data from child table based on column in parent tableQuery runs slowly when a non-indexed column is added to the WHERE clauseProper table design for sparse primary key

Is it correct to write "is not focus on"?

Can I use my Chinese passport to enter China after I acquired another citizenship?

Everything Bob says is false. How does he get people to trust him?

Mapping a list into a phase plot

Is exact Kanji stroke length important?

Valid Badminton Score?

What will be the benefits of Brexit?

Displaying the order of the columns of a table

Why is delta-v is the most useful quantity for planning space travel?

How will losing mobility of one hand affect my career as a programmer?

Modify casing of marked letters

Cynical novel that describes an America ruled by the media, arms manufacturers, and ethnic figureheads

Finding all intervals that match predicate in vector

Is there any reason not to eat food that's been dropped on the surface of the moon?

I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?

How do I keep an essay about "feeling flat" from feeling flat?

Using parameter substitution on a Bash array

Why did Kant, Hegel, and Adorno leave some words and phrases in the Greek alphabet?

What defines a dissertation?

How could Frankenstein get the parts for his _second_ creature?

What is the opposite of 'gravitas'?

apt-get update is failing in debian

Irreducibility of a simple polynomial

What is the oldest known work of fiction?



Displaying the order of the columns of a table


Why should I create an ID column when I can use others as key fields?How do you create a relationship to a non-primary key in SQL Server?Oracle GoldenGate add trandata errorsError while executing SSIS package which contains Script component through SQL Server Agent JobShould I mark a composite index as unique if it contains the primary key?Can I rely on reading SQL Server Identity values in order?Order by custom filter without certain dataSQL Server query problem when selecting data from child table based on column in parent tableQuery runs slowly when a non-indexed column is added to the WHERE clauseProper table design for sparse primary key













3















I created a table, and want to find the display the order of its columns.
Should I use the following query to display the info ordered by column_id?



select * from sys.columns c
where c.object_id = object_id('Customer')
order by column_id


create table dbo.Customer
(
CustomerId int primary key,
CustomerName varchar(255),
CustomerAddress varchar(255),
EnrollmentDate date
)


Reading Microsoft SQL Server documentation, I am seeing the information below, so want to be sure:



Column name Data type Description
----------- --------- ----------------------------------------------
column_id: int ID of the column. Is unique within the object.
Column IDs might not be sequential.









share|improve this question









New contributor




John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    3















    I created a table, and want to find the display the order of its columns.
    Should I use the following query to display the info ordered by column_id?



    select * from sys.columns c
    where c.object_id = object_id('Customer')
    order by column_id


    create table dbo.Customer
    (
    CustomerId int primary key,
    CustomerName varchar(255),
    CustomerAddress varchar(255),
    EnrollmentDate date
    )


    Reading Microsoft SQL Server documentation, I am seeing the information below, so want to be sure:



    Column name Data type Description
    ----------- --------- ----------------------------------------------
    column_id: int ID of the column. Is unique within the object.
    Column IDs might not be sequential.









    share|improve this question









    New contributor




    John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      3












      3








      3








      I created a table, and want to find the display the order of its columns.
      Should I use the following query to display the info ordered by column_id?



      select * from sys.columns c
      where c.object_id = object_id('Customer')
      order by column_id


      create table dbo.Customer
      (
      CustomerId int primary key,
      CustomerName varchar(255),
      CustomerAddress varchar(255),
      EnrollmentDate date
      )


      Reading Microsoft SQL Server documentation, I am seeing the information below, so want to be sure:



      Column name Data type Description
      ----------- --------- ----------------------------------------------
      column_id: int ID of the column. Is unique within the object.
      Column IDs might not be sequential.









      share|improve this question









      New contributor




      John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I created a table, and want to find the display the order of its columns.
      Should I use the following query to display the info ordered by column_id?



      select * from sys.columns c
      where c.object_id = object_id('Customer')
      order by column_id


      create table dbo.Customer
      (
      CustomerId int primary key,
      CustomerName varchar(255),
      CustomerAddress varchar(255),
      EnrollmentDate date
      )


      Reading Microsoft SQL Server documentation, I am seeing the information below, so want to be sure:



      Column name Data type Description
      ----------- --------- ----------------------------------------------
      column_id: int ID of the column. Is unique within the object.
      Column IDs might not be sequential.






      sql-server sql-server-2016






      share|improve this question









      New contributor




      John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 2 hours ago









      MDCCL

      6,85331745




      6,85331745






      New contributor




      John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 4 hours ago









      John ThomasJohn Thomas

      211




      211




      New contributor




      John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      John Thomas is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          2 Answers
          2






          active

          oldest

          votes


















          3














          column_id is a reasonable proxy for the column ordinal, since it is impossible to insert a column between two existing columns in SQL Server without dropping and recreating the table.



          As the documentation states, column_id values may not be sequential if you drop a column from a table.



          You can also make use of the COLUMNPROPERTY() function to return the actual ordinal for each column.



          Consider a quick example:



          IF OBJECT_ID(N'dbo.t', N'U') IS NOT NULL
          DROP TABLE dbo.t;
          CREATE TABLE dbo.t
          (
          c1 int
          , c2 int
          , c3 int
          , c4 int
          );

          ALTER TABLE dbo.t DROP COLUMN c1;
          ALTER TABLE dbo.t ADD c5 int;
          ALTER TABLE dbo.t ALTER COLUMN c2 char(3);

          SELECT o.name
          , c.name
          , c.column_id
          , ordinal = COLUMNPROPERTY(c.object_id, c.name, 'ordinal')
          FROM sys.columns c
          INNER JOIN sys.objects o ON c.object_id = o.object_id
          WHERE o.name = N't'


          The output looks like:



          ╔══════╦══════╦═══════════╦═════════╗
          ║ name ║ name ║ column_id ║ ordinal ║
          ╠══════╬══════╬═══════════╬═════════╣
          ║ t ║ c2 ║ 2 ║ 1 ║
          ║ t ║ c3 ║ 3 ║ 2 ║
          ║ t ║ c4 ║ 4 ║ 3 ║
          ║ t ║ c5 ║ 5 ║ 4 ║
          ╚══════╩══════╩═══════════╩═════════╝




          share

























          • thanks, can we assume column order will always go ascending order, so I if I delete columns, we get them sequenced in order, that's all I really care about, example : 1,3,4,7,8, (if we delete some columns?)

            – John Thomas
            3 hours ago











          • another interesting note, Ordinal is not in Microsoft documentation, wondering if they are trying to deprecate docs.microsoft.com/en-us/sql/t-sql/functions/… , mssqltips.com/sqlservertip/1298/…

            – John Thomas
            3 hours ago


















          1














          Just to propose an additional answer that will tell you the actual column position instead of column_id



          select column_name, ORDINAL_POSITION 
          from INFORMATION_SCHEMA.COLUMNS
          where table_name = 'your_table'





          share|improve this answer






















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "182"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );






            John Thomas is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f233179%2fdisplaying-the-order-of-the-columns-of-a-table%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            column_id is a reasonable proxy for the column ordinal, since it is impossible to insert a column between two existing columns in SQL Server without dropping and recreating the table.



            As the documentation states, column_id values may not be sequential if you drop a column from a table.



            You can also make use of the COLUMNPROPERTY() function to return the actual ordinal for each column.



            Consider a quick example:



            IF OBJECT_ID(N'dbo.t', N'U') IS NOT NULL
            DROP TABLE dbo.t;
            CREATE TABLE dbo.t
            (
            c1 int
            , c2 int
            , c3 int
            , c4 int
            );

            ALTER TABLE dbo.t DROP COLUMN c1;
            ALTER TABLE dbo.t ADD c5 int;
            ALTER TABLE dbo.t ALTER COLUMN c2 char(3);

            SELECT o.name
            , c.name
            , c.column_id
            , ordinal = COLUMNPROPERTY(c.object_id, c.name, 'ordinal')
            FROM sys.columns c
            INNER JOIN sys.objects o ON c.object_id = o.object_id
            WHERE o.name = N't'


            The output looks like:



            ╔══════╦══════╦═══════════╦═════════╗
            ║ name ║ name ║ column_id ║ ordinal ║
            ╠══════╬══════╬═══════════╬═════════╣
            ║ t ║ c2 ║ 2 ║ 1 ║
            ║ t ║ c3 ║ 3 ║ 2 ║
            ║ t ║ c4 ║ 4 ║ 3 ║
            ║ t ║ c5 ║ 5 ║ 4 ║
            ╚══════╩══════╩═══════════╩═════════╝




            share

























            • thanks, can we assume column order will always go ascending order, so I if I delete columns, we get them sequenced in order, that's all I really care about, example : 1,3,4,7,8, (if we delete some columns?)

              – John Thomas
              3 hours ago











            • another interesting note, Ordinal is not in Microsoft documentation, wondering if they are trying to deprecate docs.microsoft.com/en-us/sql/t-sql/functions/… , mssqltips.com/sqlservertip/1298/…

              – John Thomas
              3 hours ago















            3














            column_id is a reasonable proxy for the column ordinal, since it is impossible to insert a column between two existing columns in SQL Server without dropping and recreating the table.



            As the documentation states, column_id values may not be sequential if you drop a column from a table.



            You can also make use of the COLUMNPROPERTY() function to return the actual ordinal for each column.



            Consider a quick example:



            IF OBJECT_ID(N'dbo.t', N'U') IS NOT NULL
            DROP TABLE dbo.t;
            CREATE TABLE dbo.t
            (
            c1 int
            , c2 int
            , c3 int
            , c4 int
            );

            ALTER TABLE dbo.t DROP COLUMN c1;
            ALTER TABLE dbo.t ADD c5 int;
            ALTER TABLE dbo.t ALTER COLUMN c2 char(3);

            SELECT o.name
            , c.name
            , c.column_id
            , ordinal = COLUMNPROPERTY(c.object_id, c.name, 'ordinal')
            FROM sys.columns c
            INNER JOIN sys.objects o ON c.object_id = o.object_id
            WHERE o.name = N't'


            The output looks like:



            ╔══════╦══════╦═══════════╦═════════╗
            ║ name ║ name ║ column_id ║ ordinal ║
            ╠══════╬══════╬═══════════╬═════════╣
            ║ t ║ c2 ║ 2 ║ 1 ║
            ║ t ║ c3 ║ 3 ║ 2 ║
            ║ t ║ c4 ║ 4 ║ 3 ║
            ║ t ║ c5 ║ 5 ║ 4 ║
            ╚══════╩══════╩═══════════╩═════════╝




            share

























            • thanks, can we assume column order will always go ascending order, so I if I delete columns, we get them sequenced in order, that's all I really care about, example : 1,3,4,7,8, (if we delete some columns?)

              – John Thomas
              3 hours ago











            • another interesting note, Ordinal is not in Microsoft documentation, wondering if they are trying to deprecate docs.microsoft.com/en-us/sql/t-sql/functions/… , mssqltips.com/sqlservertip/1298/…

              – John Thomas
              3 hours ago













            3












            3








            3







            column_id is a reasonable proxy for the column ordinal, since it is impossible to insert a column between two existing columns in SQL Server without dropping and recreating the table.



            As the documentation states, column_id values may not be sequential if you drop a column from a table.



            You can also make use of the COLUMNPROPERTY() function to return the actual ordinal for each column.



            Consider a quick example:



            IF OBJECT_ID(N'dbo.t', N'U') IS NOT NULL
            DROP TABLE dbo.t;
            CREATE TABLE dbo.t
            (
            c1 int
            , c2 int
            , c3 int
            , c4 int
            );

            ALTER TABLE dbo.t DROP COLUMN c1;
            ALTER TABLE dbo.t ADD c5 int;
            ALTER TABLE dbo.t ALTER COLUMN c2 char(3);

            SELECT o.name
            , c.name
            , c.column_id
            , ordinal = COLUMNPROPERTY(c.object_id, c.name, 'ordinal')
            FROM sys.columns c
            INNER JOIN sys.objects o ON c.object_id = o.object_id
            WHERE o.name = N't'


            The output looks like:



            ╔══════╦══════╦═══════════╦═════════╗
            ║ name ║ name ║ column_id ║ ordinal ║
            ╠══════╬══════╬═══════════╬═════════╣
            ║ t ║ c2 ║ 2 ║ 1 ║
            ║ t ║ c3 ║ 3 ║ 2 ║
            ║ t ║ c4 ║ 4 ║ 3 ║
            ║ t ║ c5 ║ 5 ║ 4 ║
            ╚══════╩══════╩═══════════╩═════════╝




            share















            column_id is a reasonable proxy for the column ordinal, since it is impossible to insert a column between two existing columns in SQL Server without dropping and recreating the table.



            As the documentation states, column_id values may not be sequential if you drop a column from a table.



            You can also make use of the COLUMNPROPERTY() function to return the actual ordinal for each column.



            Consider a quick example:



            IF OBJECT_ID(N'dbo.t', N'U') IS NOT NULL
            DROP TABLE dbo.t;
            CREATE TABLE dbo.t
            (
            c1 int
            , c2 int
            , c3 int
            , c4 int
            );

            ALTER TABLE dbo.t DROP COLUMN c1;
            ALTER TABLE dbo.t ADD c5 int;
            ALTER TABLE dbo.t ALTER COLUMN c2 char(3);

            SELECT o.name
            , c.name
            , c.column_id
            , ordinal = COLUMNPROPERTY(c.object_id, c.name, 'ordinal')
            FROM sys.columns c
            INNER JOIN sys.objects o ON c.object_id = o.object_id
            WHERE o.name = N't'


            The output looks like:



            ╔══════╦══════╦═══════════╦═════════╗
            ║ name ║ name ║ column_id ║ ordinal ║
            ╠══════╬══════╬═══════════╬═════════╣
            ║ t ║ c2 ║ 2 ║ 1 ║
            ║ t ║ c3 ║ 3 ║ 2 ║
            ║ t ║ c4 ║ 4 ║ 3 ║
            ║ t ║ c5 ║ 5 ║ 4 ║
            ╚══════╩══════╩═══════════╩═════════╝





            share













            share


            share








            edited 3 hours ago

























            answered 3 hours ago









            Max VernonMax Vernon

            51.9k13114230




            51.9k13114230












            • thanks, can we assume column order will always go ascending order, so I if I delete columns, we get them sequenced in order, that's all I really care about, example : 1,3,4,7,8, (if we delete some columns?)

              – John Thomas
              3 hours ago











            • another interesting note, Ordinal is not in Microsoft documentation, wondering if they are trying to deprecate docs.microsoft.com/en-us/sql/t-sql/functions/… , mssqltips.com/sqlservertip/1298/…

              – John Thomas
              3 hours ago

















            • thanks, can we assume column order will always go ascending order, so I if I delete columns, we get them sequenced in order, that's all I really care about, example : 1,3,4,7,8, (if we delete some columns?)

              – John Thomas
              3 hours ago











            • another interesting note, Ordinal is not in Microsoft documentation, wondering if they are trying to deprecate docs.microsoft.com/en-us/sql/t-sql/functions/… , mssqltips.com/sqlservertip/1298/…

              – John Thomas
              3 hours ago
















            thanks, can we assume column order will always go ascending order, so I if I delete columns, we get them sequenced in order, that's all I really care about, example : 1,3,4,7,8, (if we delete some columns?)

            – John Thomas
            3 hours ago





            thanks, can we assume column order will always go ascending order, so I if I delete columns, we get them sequenced in order, that's all I really care about, example : 1,3,4,7,8, (if we delete some columns?)

            – John Thomas
            3 hours ago













            another interesting note, Ordinal is not in Microsoft documentation, wondering if they are trying to deprecate docs.microsoft.com/en-us/sql/t-sql/functions/… , mssqltips.com/sqlservertip/1298/…

            – John Thomas
            3 hours ago





            another interesting note, Ordinal is not in Microsoft documentation, wondering if they are trying to deprecate docs.microsoft.com/en-us/sql/t-sql/functions/… , mssqltips.com/sqlservertip/1298/…

            – John Thomas
            3 hours ago













            1














            Just to propose an additional answer that will tell you the actual column position instead of column_id



            select column_name, ORDINAL_POSITION 
            from INFORMATION_SCHEMA.COLUMNS
            where table_name = 'your_table'





            share|improve this answer



























              1














              Just to propose an additional answer that will tell you the actual column position instead of column_id



              select column_name, ORDINAL_POSITION 
              from INFORMATION_SCHEMA.COLUMNS
              where table_name = 'your_table'





              share|improve this answer

























                1












                1








                1







                Just to propose an additional answer that will tell you the actual column position instead of column_id



                select column_name, ORDINAL_POSITION 
                from INFORMATION_SCHEMA.COLUMNS
                where table_name = 'your_table'





                share|improve this answer













                Just to propose an additional answer that will tell you the actual column position instead of column_id



                select column_name, ORDINAL_POSITION 
                from INFORMATION_SCHEMA.COLUMNS
                where table_name = 'your_table'






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 3 hours ago









                PadwanPadwan

                1916




                1916




















                    John Thomas is a new contributor. Be nice, and check out our Code of Conduct.









                    draft saved

                    draft discarded


















                    John Thomas is a new contributor. Be nice, and check out our Code of Conduct.












                    John Thomas is a new contributor. Be nice, and check out our Code of Conduct.











                    John Thomas is a new contributor. Be nice, and check out our Code of Conduct.














                    Thanks for contributing an answer to Database Administrators Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f233179%2fdisplaying-the-order-of-the-columns-of-a-table%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How does Billy Russo acquire his 'Jigsaw' mask? Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar Manara Favourite questions and answers from the 1st quarter of 2019Why does Bane wear the mask?Why does Kylo Ren wear a mask?Why did Captain America remove his mask while fighting Batroc the Leaper?How did the OA acquire her wisdom?Is Billy Breckenridge gay?How does Adrian Toomes hide his earnings from the IRS?What is the state of affairs on Nootka Sound by the end of season 1?How did Tia Dalma acquire Captain Barbossa's body?How is one “Deemed Worthy”, to acquire the Greatsword “Dawn”?How did Karen acquire the handgun?

                    Личност Атрибути на личността | Литература и източници | НавигацияРаждането на личносттаредактиратередактирате

                    A sequel to Domino's tragic life Why Christmas is for Friends Cold comfort at Charles' padSad farewell for Lady JanePS Most watched News videos