当我尝试将.csv
逗号分隔的平面文件导入到Microsoft SQL server 2008R2 64-bit instance
中时,对于string
列,原始数据中的NULL
变为文字字符串"NULL"
,并且在numeric
列中收到导入错误。有人能帮帮忙吗?
发布于 2013-06-27 18:58:15
将数据放入临时表中,然后使用SQL代码插入到生产表中。
update table1
set field1 = NULL
where field1 = 'null'
或者如果你想做很多领域
update table1
set field1 = case when field1 = 'null' then Null else Field1 End
, field2 = case when field2 = 'null' then Null else Field2 End
, field3 = case when field3 = 'null' then Null else Field3 End
发布于 2015-07-06 16:18:28
接吻
对其进行预处理,将所有"NULL“替换为"”。
即.csv文件将具有
,,
而不是
NULL,NULL,
似乎为我做了这件事。
发布于 2014-09-22 12:24:11
除了HLGEM的回答,我动态地做了这件事,我将所有列类型都加载到这里的临时表中,然后这样做:
DECLARE @sql VARCHAR(MAX) = '';
SELECT @sql = CONCAT(@sql, '
UPDATE [staging].[',[TABLE_NAME],']
SET [',[COLUMN_NAME],'] = NULL
WHERE [',[COLUMN_NAME],'] = ''NULL'';
')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE [TABLE_SCHEMA] = 'staging'
AND [TABLE_NAME] IN ('MyTableName');
SELECT @sql;
EXEC(@sql);
然后执行以下操作:
INSERT INTO [dbo].[MyTableName] ([col1], [col2], [colN])
SELECT [col1], [col2], [colN]
FROM [staging].[MyTableName]
https://stackoverflow.com/questions/17351099
复制相似问题