SQL读取csv问题

nebuung 2018-08-15 02:41:52
如下代码,我需要将路径的文件夹名取当天的日期,求教怎么组合
另外是否可以将fnote列值写为路径中的文件夹名“DPR001”

use MySql
/*
CREATE TABLE [dbo].[temp_pre](
[time1] [float] NULL,
[time2] [float] NULL,
[fdate] [nvarchar](50) NULL,
[ftime] [nvarchar](50) NULL,
[fnote] [nvarchar](50) NULL
)
*/
BULK INSERT temp_pre
FROM 'D:\DPR001\2018-08-15.csv'
--FROM 'D:\DPR001\'+convert(varchar(10),getdate(),120)+'.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
delete from temp_pre where time1 is null
SELECT * FROM temp_pre
...全文
147 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nebuung 2018-08-16
引用 1 楼 zjcxc 的回复:
-- 给 fnote 加上默认值,这样新导入的数据这个列的默认值就是 DPR001
ALTER TABLE [dbo].[temp_pre]
	ADD CONSTRAINT DF_fnote DEFAULT 'DPR001' FOR fnote
;
-- 日期的问题用动态语句
DECLARE @sql nvarchar(4000);
SET @sql = '
BULK INSERT temp_pre
FROM ''D:\DPR001\' + CONVERT(varchar(10), GETDATE(), 120) + '.csv''
WITH
(
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n'' 
)';
EXEC(@sql);
感谢大神相助。 使用动态语句插入csv已成功,再请问下如果我的路径不存在那个文件,如何跳过以防止产生报错? 加入默认值的方法跟我实际情况不适用,我采取了其他方式。
回复
zjcxc 2018-08-15
-- 给 fnote 加上默认值,这样新导入的数据这个列的默认值就是 DPR001
ALTER TABLE [dbo].[temp_pre]
ADD CONSTRAINT DF_fnote DEFAULT 'DPR001' FOR fnote
;
-- 日期的问题用动态语句
DECLARE @sql nvarchar(4000);
SET @sql = '
BULK INSERT temp_pre
FROM ''D:\DPR001\' + CONVERT(varchar(10), GETDATE(), 120) + '.csv''
WITH
(
FIELDTERMINATOR = '','',
ROWTERMINATOR = ''\n''
)';
EXEC(@sql);
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2018-08-15 02:41
社区公告
暂无公告