在为SQL Server编写查询时,您可以声明并使用如下变量:
declare @test int
select @test = max(ID) from MyTable1
update MyTable2 set (...) where ID > @test
update MyTable3 set (...) where ID < @test
在为MS Access编写查询时,是否有办法类似地声明和使用变量?
我需要使用另一个查询的结果填充变量,然后使用该值执行插入/更新操作。该查询将从.NET应用程序运行。
答案 0 :(得分:5)
在某种程度上
parameters @test int;
select * from MyTable where ID = @test
但是,您无法使用set @test = 1234
,可以在运行查询或在VBA中设置时手动输入参数。
Joel Coehoorn
在Query MS Access database in VB 2008
您可以使用System.Data.OleDb命名空间中的类来查询访问权限 数据库:
Using cn As New OleDbConnection("connection string here"), _
cmd As New OleDbCommand("SELECT query with ? parameter here", cn)
cmd.Parameters.Add("?", OleDbType.Int).Value = 1234
MyCombobox.DataSource = cmd.ExecuteReader()
End Using
进一步注释重新编辑为OP
查询1
update MyTable2 set (...) where ID > (select max(test) from table1)
查询2
update MyTable3 set (...) where ID < (select max(test) from table1)