我正在使用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#构建的主应用程序中调用它们。
提前致谢。
答案 0 :(得分:1)
请阅读此http://www.sommarskog.se/dynamic_sql.html#storedprocedures
我认为这正是你要找的。 p>
答案 1 :(得分:0)
您需要在存储过程的顶部声明变量
DECLARE @DB AS string
INSERT INTO Part_Batteries ( ItemCode, Size, Voltage )
SELECT tblBatteries.ItemCode, tblBatteries.SizeAH, tblBatteries.Voltage
FROM tblBatteries IN @DB;