使用批量插入自动填充sql表,然后导出到xml

时间:2009-04-14 21:31:30

标签: asp.net sql xml automation

我正在做一个项目,涉及使用批量插入来填充带有天气数据的sql表。

BULK INSERT TableWeather FROM 'C:\Program Files\EasyWeather\EasyWeather.dat' WITH (FIELDTERMINATOR = ',')

这似乎工作正常,但我需要每15分钟执行一次,并且实际上也会覆盖上次的数据,以便表格大小不会失控。我一直在检查,但我不太方便的SQL代码。我是否需要创建存储过程并自动执行该操作?

我还需要这样做,以便每15分钟将新数据导出为xml,swf将使用它在asp.net网站上显示。

任何建议都非常感谢, 感谢

3 个答案:

答案 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语句。