我正在做一个项目,涉及使用批量插入来填充带有天气数据的sql表。
BULK INSERT TableWeather
FROM 'C:\Program Files\EasyWeather\EasyWeather.dat' WITH (FIELDTERMINATOR = ',')
这似乎工作正常,但我需要每15分钟执行一次,并且实际上也会覆盖上次的数据,以便表格大小不会失控。我一直在检查,但我不太方便的SQL代码。我是否需要创建存储过程并自动执行该操作?
我还需要这样做,以便每15分钟将新数据导出为xml,swf将使用它在asp.net网站上显示。
任何建议都非常感谢, 感谢
答案 0 :(得分:1)
SQL Server仍然拥有硬件旧的bcp实用程序和方便(相对较新)的sqlcmd实用程序。不确定它们是否适用于您的版本,但如果它们可用,我会推荐它。您只需将bcp和sqlcmd语句放在Windows批处理文件中并运行它们。
这样的东西应该有用(你需要修改命令上的开关)......
sqlcmd.exe -SMyServer -dMyDatabase -b -Q "delete from TableWeather"
bcp.exe MyDatabase.dbo.TableWeather in C:\Program Files\EasyWeather\EasyWeather.dat -SMyServer -T
有关bcp的更多信息,请参阅this link;有关sqlcmd,请参阅this one。
这也可以帮助您使用XML。使用sqlcmd执行存储过程,将数据格式化为XML并将其存储在表中,然后使用bcp导出它(bcp双向传输。)
希望这有帮助。
答案 1 :(得分:0)
您使用的是SQL Server吗?如果是这样,您可以使用SSIS包来执行此操作。
SSIS帮助 - > link text
答案 2 :(得分:0)
您可以设置Sql作业或Windows计划作业每15分钟运行一次..在批量插入之前添加truncate语句。