How to import blanks as nulls instead of zeros while importing txt using wizard Announcing the...

Maximum summed subsequences with non-adjacent items

Random body shuffle every night—can we still function?

Hangman Game with C++

How much damage would a cupful of neutron star matter do to the Earth?

A letter with no particular backstory

What was the first language to use conditional keywords?

What is the meaning of 'breadth' in breadth first search?

Why weren't discrete x86 CPUs ever used in game hardware?

Is it fair for a professor to grade us on the possession of past papers?

Electrolysis of water: Which equations to use? (IB Chem)

What would you call this weird metallic apparatus that allows you to lift people?

What do you call the main part of a joke?

How can I prevent/balance waiting and turtling as a response to cooldown mechanics

Sum letters are not two different

Is it possible to force a specific program to remain in memory after closing it?

How to plot logistic regression decision boundary?

Would it be easier to apply for a UK visa if there is a host family to sponsor for you in going there?

Significance of Cersei's obsession with elephants?

What to do with repeated rejections for phd position

Who can remove European Commissioners?

What initially awakened the Balrog?

Did any compiler fully use 80-bit floating point?

Can a new player join a group only when a new campaign starts?

What is the difference between globalisation and imperialism?



How to import blanks as nulls instead of zeros while importing txt using wizard



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)Using Import Wizard with Access - No null valuesImport errors importing CSV to SQL Server tableImporting CSV file using SQL Server Import and Export Wizard (SQL Server Express)Error message when importing data into SQL (Import & Export Data Wizard)How does SQL Server Import and Export Wizard fetch metadata?After Insert Trigger never fires using Import WizardSSMS: Import from flat file (.csv)Excel Import ID, Data Type DoubleHow to add in carriage-return/line-feeds without starting a new row in a tabbed txt SQLite importHow to correct SQL Server Import and Export Wizard error that says my data conversion length must be between 0 and 4000?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







4















I'm using the Import Wizard to load a text file and need blanks in integer fields to be nulls, but only zeros are inserted.



How to import it properly?










share|improve this question




















  • 2





    are you interested in seeing an example of how to do this using T-SQL instead of the wizard?

    – Max Vernon
    Dec 8 '15 at 19:58






  • 1





    You could make a proper SSIS package? There are a ton of solutions that don't involve the wizard.

    – Zane
    Dec 8 '15 at 20:41


















4















I'm using the Import Wizard to load a text file and need blanks in integer fields to be nulls, but only zeros are inserted.



How to import it properly?










share|improve this question




















  • 2





    are you interested in seeing an example of how to do this using T-SQL instead of the wizard?

    – Max Vernon
    Dec 8 '15 at 19:58






  • 1





    You could make a proper SSIS package? There are a ton of solutions that don't involve the wizard.

    – Zane
    Dec 8 '15 at 20:41














4












4








4








I'm using the Import Wizard to load a text file and need blanks in integer fields to be nulls, but only zeros are inserted.



How to import it properly?










share|improve this question
















I'm using the Import Wizard to load a text file and need blanks in integer fields to be nulls, but only zeros are inserted.



How to import it properly?







sql-server sql-server-2012 import integer






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 9 '15 at 6:35









Andriy M

16.3k63473




16.3k63473










asked Dec 8 '15 at 12:41









VladimirVladimir

2113




2113








  • 2





    are you interested in seeing an example of how to do this using T-SQL instead of the wizard?

    – Max Vernon
    Dec 8 '15 at 19:58






  • 1





    You could make a proper SSIS package? There are a ton of solutions that don't involve the wizard.

    – Zane
    Dec 8 '15 at 20:41














  • 2





    are you interested in seeing an example of how to do this using T-SQL instead of the wizard?

    – Max Vernon
    Dec 8 '15 at 19:58






  • 1





    You could make a proper SSIS package? There are a ton of solutions that don't involve the wizard.

    – Zane
    Dec 8 '15 at 20:41








2




2





are you interested in seeing an example of how to do this using T-SQL instead of the wizard?

– Max Vernon
Dec 8 '15 at 19:58





are you interested in seeing an example of how to do this using T-SQL instead of the wizard?

– Max Vernon
Dec 8 '15 at 19:58




1




1





You could make a proper SSIS package? There are a ton of solutions that don't involve the wizard.

– Zane
Dec 8 '15 at 20:41





You could make a proper SSIS package? There are a ton of solutions that don't involve the wizard.

– Zane
Dec 8 '15 at 20:41










3 Answers
3






active

oldest

votes


















4














I see you are attempting to use the Wizard to import data. You may be better off manually creating the table with the column definitions you desire, and using the T-SQL BULK INSERT command to import the data.



 USE tempdb;

CREATE TABLE dbo.TestSource
(
SomeNumber INT NULL
);


I created a plain-text sample file named C:temptest.txt which contains the following rows:



 1

3
4

6
7

9


This statement imports the rows from the text file into the TestSource table:



 BULK INSERT dbo.TestSource
FROM 'C:temptest.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
KEEPNULLS
);


This shows the contents after the import is complete:



 SELECT *
FROM dbo.TestSource;


enter image description here






share|improve this answer

































    4














    Unfortunately that's not possible if you insist on using the wizard, you would need to edit the package using Visual Studio.



    There is an option 'keep null's' when editing the package in Visual Studio



    Given this .csv file:



    StringField,IntField
    a,1
    b,5
    c,
    d,6
    e,
    f,8
    g,
    h,
    i,10
    j,


    and this table definition



    CREATE TABLE [dbo].[NullTest](
    [StringField] [varchar](50) NULL,
    [IntField] [int] NULL
    ) ON [PRIMARY]

    GO


    When you import the data using the wizard the nulls are converted to 0's



    However, if at the end of the wizard you select "save package as" instead of "run immediately" as in this screen



    enter image description here



    The file can be saved somewhere on the file system.



    If you then create a new Integration Services project, you can add an existing package like this



    enter image description here



    If you browse to the file you just saved and view it you will see one data flow task (you will see an execute SQL task too if you selected to create the table instead of appending to an existing one)



    enter image description here



    Double click the data flow to edit it, and double click the data source to check the "retain nulls" option



    enter image description here



    Then double click the destination to view the properties, then change the "Keep nulls" property to true.



    enter image description here



    If you then click the green arrow in the toolbar or select debug > start debugging from the menu to execute your package the end result is this



    enter image description here



    In the end the wizard is only a wizard. It generates an SSIS package for you and chooses some defaults, unfortunately not the defaults you want.

    If you want to keep nulls there isn't really any other way than editing the package with Visual Studio.



    Then again, it might be easier to just create the package yourself in Visual Studio or use @MaxVernon's T-SQL solution.






    share|improve this answer

































      0














      IF you have at least SSMS v 17.3 and are importing to a newly created table you can use the Import Flat File to SQL Wizard for this.



      Running it against the CSV file in Tom's answer.



      enter image description here



      With the resulting table looking like



      enter image description here





      share
























        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
        });


        }
        });














        draft saved

        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f123184%2fhow-to-import-blanks-as-nulls-instead-of-zeros-while-importing-txt-using-wizard%23new-answer', 'question_page');
        }
        );

        Post as a guest















        Required, but never shown

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        4














        I see you are attempting to use the Wizard to import data. You may be better off manually creating the table with the column definitions you desire, and using the T-SQL BULK INSERT command to import the data.



         USE tempdb;

        CREATE TABLE dbo.TestSource
        (
        SomeNumber INT NULL
        );


        I created a plain-text sample file named C:temptest.txt which contains the following rows:



         1

        3
        4

        6
        7

        9


        This statement imports the rows from the text file into the TestSource table:



         BULK INSERT dbo.TestSource
        FROM 'C:temptest.txt'
        WITH (
        DATAFILETYPE = 'char',
        FIELDTERMINATOR = ',',
        KEEPNULLS
        );


        This shows the contents after the import is complete:



         SELECT *
        FROM dbo.TestSource;


        enter image description here






        share|improve this answer






























          4














          I see you are attempting to use the Wizard to import data. You may be better off manually creating the table with the column definitions you desire, and using the T-SQL BULK INSERT command to import the data.



           USE tempdb;

          CREATE TABLE dbo.TestSource
          (
          SomeNumber INT NULL
          );


          I created a plain-text sample file named C:temptest.txt which contains the following rows:



           1

          3
          4

          6
          7

          9


          This statement imports the rows from the text file into the TestSource table:



           BULK INSERT dbo.TestSource
          FROM 'C:temptest.txt'
          WITH (
          DATAFILETYPE = 'char',
          FIELDTERMINATOR = ',',
          KEEPNULLS
          );


          This shows the contents after the import is complete:



           SELECT *
          FROM dbo.TestSource;


          enter image description here






          share|improve this answer




























            4












            4








            4







            I see you are attempting to use the Wizard to import data. You may be better off manually creating the table with the column definitions you desire, and using the T-SQL BULK INSERT command to import the data.



             USE tempdb;

            CREATE TABLE dbo.TestSource
            (
            SomeNumber INT NULL
            );


            I created a plain-text sample file named C:temptest.txt which contains the following rows:



             1

            3
            4

            6
            7

            9


            This statement imports the rows from the text file into the TestSource table:



             BULK INSERT dbo.TestSource
            FROM 'C:temptest.txt'
            WITH (
            DATAFILETYPE = 'char',
            FIELDTERMINATOR = ',',
            KEEPNULLS
            );


            This shows the contents after the import is complete:



             SELECT *
            FROM dbo.TestSource;


            enter image description here






            share|improve this answer















            I see you are attempting to use the Wizard to import data. You may be better off manually creating the table with the column definitions you desire, and using the T-SQL BULK INSERT command to import the data.



             USE tempdb;

            CREATE TABLE dbo.TestSource
            (
            SomeNumber INT NULL
            );


            I created a plain-text sample file named C:temptest.txt which contains the following rows:



             1

            3
            4

            6
            7

            9


            This statement imports the rows from the text file into the TestSource table:



             BULK INSERT dbo.TestSource
            FROM 'C:temptest.txt'
            WITH (
            DATAFILETYPE = 'char',
            FIELDTERMINATOR = ',',
            KEEPNULLS
            );


            This shows the contents after the import is complete:



             SELECT *
            FROM dbo.TestSource;


            enter image description here







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Dec 9 '15 at 14:36

























            answered Dec 9 '15 at 13:45









            Max VernonMax Vernon

            52.6k13115232




            52.6k13115232

























                4














                Unfortunately that's not possible if you insist on using the wizard, you would need to edit the package using Visual Studio.



                There is an option 'keep null's' when editing the package in Visual Studio



                Given this .csv file:



                StringField,IntField
                a,1
                b,5
                c,
                d,6
                e,
                f,8
                g,
                h,
                i,10
                j,


                and this table definition



                CREATE TABLE [dbo].[NullTest](
                [StringField] [varchar](50) NULL,
                [IntField] [int] NULL
                ) ON [PRIMARY]

                GO


                When you import the data using the wizard the nulls are converted to 0's



                However, if at the end of the wizard you select "save package as" instead of "run immediately" as in this screen



                enter image description here



                The file can be saved somewhere on the file system.



                If you then create a new Integration Services project, you can add an existing package like this



                enter image description here



                If you browse to the file you just saved and view it you will see one data flow task (you will see an execute SQL task too if you selected to create the table instead of appending to an existing one)



                enter image description here



                Double click the data flow to edit it, and double click the data source to check the "retain nulls" option



                enter image description here



                Then double click the destination to view the properties, then change the "Keep nulls" property to true.



                enter image description here



                If you then click the green arrow in the toolbar or select debug > start debugging from the menu to execute your package the end result is this



                enter image description here



                In the end the wizard is only a wizard. It generates an SSIS package for you and chooses some defaults, unfortunately not the defaults you want.

                If you want to keep nulls there isn't really any other way than editing the package with Visual Studio.



                Then again, it might be easier to just create the package yourself in Visual Studio or use @MaxVernon's T-SQL solution.






                share|improve this answer






























                  4














                  Unfortunately that's not possible if you insist on using the wizard, you would need to edit the package using Visual Studio.



                  There is an option 'keep null's' when editing the package in Visual Studio



                  Given this .csv file:



                  StringField,IntField
                  a,1
                  b,5
                  c,
                  d,6
                  e,
                  f,8
                  g,
                  h,
                  i,10
                  j,


                  and this table definition



                  CREATE TABLE [dbo].[NullTest](
                  [StringField] [varchar](50) NULL,
                  [IntField] [int] NULL
                  ) ON [PRIMARY]

                  GO


                  When you import the data using the wizard the nulls are converted to 0's



                  However, if at the end of the wizard you select "save package as" instead of "run immediately" as in this screen



                  enter image description here



                  The file can be saved somewhere on the file system.



                  If you then create a new Integration Services project, you can add an existing package like this



                  enter image description here



                  If you browse to the file you just saved and view it you will see one data flow task (you will see an execute SQL task too if you selected to create the table instead of appending to an existing one)



                  enter image description here



                  Double click the data flow to edit it, and double click the data source to check the "retain nulls" option



                  enter image description here



                  Then double click the destination to view the properties, then change the "Keep nulls" property to true.



                  enter image description here



                  If you then click the green arrow in the toolbar or select debug > start debugging from the menu to execute your package the end result is this



                  enter image description here



                  In the end the wizard is only a wizard. It generates an SSIS package for you and chooses some defaults, unfortunately not the defaults you want.

                  If you want to keep nulls there isn't really any other way than editing the package with Visual Studio.



                  Then again, it might be easier to just create the package yourself in Visual Studio or use @MaxVernon's T-SQL solution.






                  share|improve this answer




























                    4












                    4








                    4







                    Unfortunately that's not possible if you insist on using the wizard, you would need to edit the package using Visual Studio.



                    There is an option 'keep null's' when editing the package in Visual Studio



                    Given this .csv file:



                    StringField,IntField
                    a,1
                    b,5
                    c,
                    d,6
                    e,
                    f,8
                    g,
                    h,
                    i,10
                    j,


                    and this table definition



                    CREATE TABLE [dbo].[NullTest](
                    [StringField] [varchar](50) NULL,
                    [IntField] [int] NULL
                    ) ON [PRIMARY]

                    GO


                    When you import the data using the wizard the nulls are converted to 0's



                    However, if at the end of the wizard you select "save package as" instead of "run immediately" as in this screen



                    enter image description here



                    The file can be saved somewhere on the file system.



                    If you then create a new Integration Services project, you can add an existing package like this



                    enter image description here



                    If you browse to the file you just saved and view it you will see one data flow task (you will see an execute SQL task too if you selected to create the table instead of appending to an existing one)



                    enter image description here



                    Double click the data flow to edit it, and double click the data source to check the "retain nulls" option



                    enter image description here



                    Then double click the destination to view the properties, then change the "Keep nulls" property to true.



                    enter image description here



                    If you then click the green arrow in the toolbar or select debug > start debugging from the menu to execute your package the end result is this



                    enter image description here



                    In the end the wizard is only a wizard. It generates an SSIS package for you and chooses some defaults, unfortunately not the defaults you want.

                    If you want to keep nulls there isn't really any other way than editing the package with Visual Studio.



                    Then again, it might be easier to just create the package yourself in Visual Studio or use @MaxVernon's T-SQL solution.






                    share|improve this answer















                    Unfortunately that's not possible if you insist on using the wizard, you would need to edit the package using Visual Studio.



                    There is an option 'keep null's' when editing the package in Visual Studio



                    Given this .csv file:



                    StringField,IntField
                    a,1
                    b,5
                    c,
                    d,6
                    e,
                    f,8
                    g,
                    h,
                    i,10
                    j,


                    and this table definition



                    CREATE TABLE [dbo].[NullTest](
                    [StringField] [varchar](50) NULL,
                    [IntField] [int] NULL
                    ) ON [PRIMARY]

                    GO


                    When you import the data using the wizard the nulls are converted to 0's



                    However, if at the end of the wizard you select "save package as" instead of "run immediately" as in this screen



                    enter image description here



                    The file can be saved somewhere on the file system.



                    If you then create a new Integration Services project, you can add an existing package like this



                    enter image description here



                    If you browse to the file you just saved and view it you will see one data flow task (you will see an execute SQL task too if you selected to create the table instead of appending to an existing one)



                    enter image description here



                    Double click the data flow to edit it, and double click the data source to check the "retain nulls" option



                    enter image description here



                    Then double click the destination to view the properties, then change the "Keep nulls" property to true.



                    enter image description here



                    If you then click the green arrow in the toolbar or select debug > start debugging from the menu to execute your package the end result is this



                    enter image description here



                    In the end the wizard is only a wizard. It generates an SSIS package for you and chooses some defaults, unfortunately not the defaults you want.

                    If you want to keep nulls there isn't really any other way than editing the package with Visual Studio.



                    Then again, it might be easier to just create the package yourself in Visual Studio or use @MaxVernon's T-SQL solution.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Dec 10 '15 at 19:40

























                    answered Dec 10 '15 at 16:46









                    Tom VTom V

                    14k74778




                    14k74778























                        0














                        IF you have at least SSMS v 17.3 and are importing to a newly created table you can use the Import Flat File to SQL Wizard for this.



                        Running it against the CSV file in Tom's answer.



                        enter image description here



                        With the resulting table looking like



                        enter image description here





                        share




























                          0














                          IF you have at least SSMS v 17.3 and are importing to a newly created table you can use the Import Flat File to SQL Wizard for this.



                          Running it against the CSV file in Tom's answer.



                          enter image description here



                          With the resulting table looking like



                          enter image description here





                          share


























                            0












                            0








                            0







                            IF you have at least SSMS v 17.3 and are importing to a newly created table you can use the Import Flat File to SQL Wizard for this.



                            Running it against the CSV file in Tom's answer.



                            enter image description here



                            With the resulting table looking like



                            enter image description here





                            share













                            IF you have at least SSMS v 17.3 and are importing to a newly created table you can use the Import Flat File to SQL Wizard for this.



                            Running it against the CSV file in Tom's answer.



                            enter image description here



                            With the resulting table looking like



                            enter image description here






                            share











                            share


                            share










                            answered 9 mins ago









                            Martin SmithMartin Smith

                            64.5k10174260




                            64.5k10174260






























                                draft saved

                                draft discarded




















































                                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%2f123184%2fhow-to-import-blanks-as-nulls-instead-of-zeros-while-importing-txt-using-wizard%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

                                ORA-01691 (unable to extend lob segment) even though my tablespace has AUTOEXTEND onORA-01692: unable to...

                                Always On Availability groups resolving state after failover - Remote harden of transaction...

                                Circunscripción electoral de Guipúzcoa Referencias Menú de navegaciónLas claves del sistema electoral en...