我们有一个绝对正常的.sql(SQL Server)文件是SSMS。我们需要读取文件并使用VBA代码将该数据提取到Excel中。如果我转换为存储过程并通过VBA调用存储过程来填充电子表格,此代码可以正常工作。但挑战是需要以.sql文件本身的形式使用代码(因为用户将不断维护此.sql文件,并且无权在生产服务器上更改proc。)
此SQL代码创建临时(#或表变量)表。我甚至尝试将它们转换为物理表,然后编写最终的SELECT语句,但它不起作用。它给出的错误是3704(当对象关闭时不允许操作。)。 例如:
Truncate table dbo.MyTable;
INSERT INTO dbo.MyTable
SELECT ...
FROM dbo.ABC
JOIN dbo.XYZ...
SELECT * FROM dbo.MyTable;
只有.sql文件中的SELECT语句才能使用VBA代码在Excel中获取数据。
有人有任何想法吗?