需要BULK INSERT到临时表。它不适用于表变量,所以我如何在函数内执行此操作?

时间:2014-01-17 17:17:27

标签: sql sql-server database

我有一个旧的SQL脚本,当前通过将其加载到SQL Server Management studio并运行它来运行。我想把它变成一系列存储在数据库中的函数来清理它。

当前代码执行的基本步骤顺序如下:

(SQL逻辑的里程数)

  1. 创建临时表
  2. 将CSV文件中的BULK INSERT插入临时表
  3. 按摩数据
  4. 将数据合并到“真实”表格中
  5. DROP临时表
  6. (SQL逻辑的里程数)

    我想在一个函数中包含第1-5步,但是我在you can't BULK INSERT into a table variable时遇到了如何执行BULK INSERT,而且你也是not allowed to create temporary tables from within a function

    那么解决这个问题的正确方法是什么?

    谢谢!

1 个答案:

答案 0 :(得分:1)

正如评论中已经提到的那样,与你的不同的解决方案是在存储过程中而不是在函数中进行,而functoin旨在修改表的内容。

从短期来看,这应该是最容易实现的,但从长远来看,学习SSIS可能是一项很好的投资。