MSSQL - 如何在BULK INSERT中设置默认值?

chi*_*_82 2 sql-server sql-server-2005

我试图从csv文件获取数据与以下数据.

Employee Name: Employee Id : Employee Type : Joining Date 
Henry   : 000123   : Permanent   : 01/01/2011  
Mathew  : 111524   : Contract    : 05/04/2011  
Steven  : 002544   : Permanent   : 07/12/2010  
Sophia  : 015474   :             : 29/02/2011
Rooney  : 111303   :             : 11/11/2010
Run Code Online (Sandbox Code Playgroud)

现在我想设置

我有2个cvs文件和2个格式文件,其中1表示永久类型,1表示合同类型.现在我想在没有提供数据时设置表中的值.例如,列"员工类型".我如何设置一个默认值,当我运行永久员工cvs'员工类型=永久'时,当我运行合同cvs'员工类型=合同'时.

BULK INSERT Employee_Table
    FROM 'C:\Employee.csv'  
    WITH (  
         FIELDTERMINATOR ='';'',  
         FIRSTROW = 2,
         ROWTERMINATOR = ''\n'' 
        )  
Run Code Online (Sandbox Code Playgroud)

bri*_*ian 5

使用OPENROWSET以便您可以默认该字段:

INSERT [dbo].[Employee_Table]
  ([Employee Name], [Employee Id], [Employee Type], [Joining Date])
SELECT [Employee Name]
     , [Employee Id]
     , [Employee Type] = 'Permanent'
     , [Joining Date]
 FROM  OPENROWSET (BULK 'C:\Employee.csv',FORMATFILE='C:\formatfile.xml') as BulkLoadFile
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/ms190312.aspx