请教!BULK INSERT 数据导入问题

xhvb163 2017-07-23 10:06:37
BULK INSERT CsvTest2
FROM @filename.csv

csv文件名按日期变化,所以想在from后以变量表示文件路径,各位大神有什么好办法可以实现吗?谢谢!
...全文
236 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你 print @str 看看拼接的字符串
OwenZeng_DBA 2017-07-24
  • 打赏
  • 举报
回复
引用 楼主 xhvb163 的回复:
BULK INSERT CsvTest2 FROM @filename.csv csv文件名按日期变化,所以想在from后以变量表示文件路径,各位大神有什么好办法可以实现吗?谢谢!
先读出路径下的文件名,然后用动态语句。
xhvb163 2017-07-24
  • 打赏
  • 举报
回复
DECLARE @str NVARCHAR(MAX)='BULK INSERT CsvTest FROM ''D:\' + @filename+ '.csv'' WITH ( FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'' )' EXEC(@str) (2 行受影响) 运行之后,出现“(2 行受影响)”的提示,但数据并没有插入数据库对应CsvTest表中,请问是什么情况呢? csv文件中数据以逗号分隔
  • 打赏
  • 举报
回复
字符串拼接 然后动态sql 执行
二月十六 2017-07-23
  • 打赏
  • 举报
回复
用拼接语句的方式实现,类似这样:
DECLARE @filename NVARCHAR(MAX) = 'test';  --变量设置文件路径
DECLARE @str NVARCHAR(MAX) = 'BULK INSERT CsvTest2  FROM ''E:\' + @filename
    + '.csv''';
EXEC(@str);

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧