SQL存储过程,其中要查询的数据库是参数

时间:2010-07-01 10:40:34

标签: sql ms-access stored-procedures parameters

我正在使用Microsoft Access(而不是SQL服务器)并编写了一个存储过程(Query),如下面的SQL所示。

此过程有效,但它依赖于数据库的硬编码路径,从中提取(SELECT)数据。

为了使查询更有用,我想将数据库作为参数传递给SELECT - 如何做到这一点?

INSERT INTO Part_Batteries ( ItemCode, Size, Voltage )
SELECT tblBatteries.ItemCode, tblBatteries.SizeAH, tblBatteries.Voltage
FROM tblBatteries IN 'C:\Databases\DeviceDatabases\UKDevices.mdb';

即。我想替换

FROM tblBatteries IN 'C:\Databases\DeviceDatabases\UKDevices.mdb';

有这样的东西

FROM tblBatteries IN @DB

目前我正在通过在Access中单击它们或通过从VB模块调用它们来测试这些过程。

当我对他们的工作感到满意时,我会根据需要从使用C#构建的主应用程序中调用它们。

提前致谢。

2 个答案:

答案 0 :(得分:1)

请阅读此http://www.sommarskog.se/dynamic_sql.html#storedprocedures

我认为这正是你要找的。

答案 1 :(得分:0)

您需要在存储过程的顶部声明变量

DECLARE @DB AS string

INSERT INTO Part_Batteries ( ItemCode, Size, Voltage )
SELECT tblBatteries.ItemCode, tblBatteries.SizeAH, tblBatteries.Voltage
FROM tblBatteries IN @DB;