我的源CSV以逗号分隔。
实施例
Col1, Col2, Col3
Destinatin SQL表
Col1, Col2, Col3, Col4, Col5
(Col4和Col5就像审核列一样)
因此,当我执行bcp导入时,这些Col4和Col5可以设置为某些默认值,或者在执行bcp cmd之前我是否必须按摩数据/源文件以包含这些值。
哪种方式首选。
使用SSIS读取源/派生审计列并映射到目标。
或任何其他正确的方式。
答案 0 :(得分:2)
我认为你有几个选择:
更改目标表的架构,以便在两列上包含DEFAULT
约束,这些约束不会使用导入文件中的值进行更新(如果不需要,则稍后将其删除< / p>
构建一个SSIS包 - 它可能需要大约相同的时间,因为您使用bcp
尝试使用BULK INSERT
到sqlcmd.exe
或SQL Server Management Studio并添加默认值(SELECT c1, c2, c3, 'My default', GETDATE() FROM OPENROWSET('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=C:\Path\To\Folder\With\CSV;','SELECT * FROM MyCsv.csv')
)