0

我有一个非常常见的设置,客户端运行的本地数据库 Access 2013 .accde,有一些本地表,但主要是链接表和视图在他们公司的 Microsoft SQL Server 2005 上运行。

其中一个视图应该根据 order_type 过滤订单,order_type 是订单表中的一个字段。目前还没有,要实现过滤控制。

视图,我们称之为 viewOrderFilter,必须是“动态的”。我想我会通过使它与视图查询中的 order_type 这个字段匹配到一个数据库变量来实现它。

如何使用 VBA 代码将 @var_OrderFilter 设置为一个值,以便可以将 WHERE order_type=@var_OrderFilter 添加到视图的查询中?

编辑:这是有效的语法吗?这些可以执行查询还是必须是存储过程或类似的?在代码中,我希望测试一个 int 是否可以设置为 NULL,但不幸的是,如果我在 Microsoft Server Management Studio 的任何地方输入它,程序就会崩溃,所以我不能在那里“尝试”任何东西。

DECLARE @var_OrderFilter INT
SET @var_OrderFilter=NULL 

感谢您的建议。

4

1 回答 1

1

你不能参数化这样的视图。创建视图时必须完全定义视图。

要将决策或过滤推迟到运行时,使用参数,您应该创建一个函数。

创建函数

于 2014-10-06T12:26:23.647 回答