2

如果有人能为这个问题想出一个更合适的标题,那么我会全力以赴。

我继承了一个从 3 个数据库收集报告信息的 sql 脚本,使用大量 #temporary 表来存储过滤后的数据。我需要使用这个脚本的输出来使用 Django 生成报告。

我首先检查了我需要的数据库并为必要的表制作模型。我最初的计划是对 sql 脚本进行逆向工程(约 330 行和 20 个查询),但事实证明这比我想象的要复杂得多。有没有办法让我运行这个脚本并将#temporary 表保存到另一个数据库中的 Django 模型或其他东西?

我正在使用 Django 1.5 和 MS SQL Server 2008 R2(带有 django-mssql 后端)。感谢您的时间。

==编辑==

我将稍微扩展一下这个脚本的结构:

SET NOCOUNT ON
declare variables here
set them here

SELECT f.val1, b.val2
INTO #temp_table1
FROM myDB1.dbo.foo f,
     myDB1.dbo.bar b,
     myDB2.dbo.foobar fb
WHERE ...
etc

-- followed by lots more selections --
.
.
.
SET NOCOUNT OFF

SELECT
        [22 things get selected and manipulated here]
        [This is the data I really want]
FROM
        [mixture of #temp tables and myDB1]
WHERE [...]
GROUP BY [...]
ORDER BY [...]

SET NOCOUNT ON
DROP TABLE #temp_table1
.
.
.

SET NOCOUNT OFF

我希望这有帮助

4

1 回答 1

0

我将为您的每个临时表创建一个 Django 模型。在每个模型中,我都会定义一个import(self)截断表格并选择所有行的方法。

您的其他代码将决定何时为每个临时表导入数据。也许它不需要每次都导入,因此您可以优化导入以仅加载自上次导入以来已更改的数据。

然后你可以使用 Django 查询来执行你的选择。

于 2013-06-17T18:33:02.247 回答