我正在使用存储过程来填充查找转换,但想限制查找缓存的大小。
我可以通过向存储过程提供参数来做到这一点,但我看不到任何在查找转换组件上参数化查询的方法。
如果您使用的是 SQL Server 2008,那么您可以使用新的缓存转换。它可以从 OLE DB 源(当然,您可以对其进行参数化)进行填充,并且可以将其行保留在内存中以供一个或多个查找转换使用,或者可以将缓存的行保存在文件中可以被多个不同的查找转换使用,甚至在不同的包中也是如此。
请参阅如何:在完全缓存模式下实现查找转换(SQL Server 视频)。虽然只有九分钟,但展示了要点。
您可以使用查找转换属性的高级页面来修改SQL语句。 这允许使用参数。 但您需要将缓存模式更改为部分缓存或无缓存,否则无法更改语句。
这些是其他 2012 年答案的屏幕截图。
加入“列”选项卡下的列。
如果您进入“高级”,您将看到您已经有了自动参数化。您的整个代码将嵌入
select * from ([whole code]) [refTable]
where [refTable].[semester_id] = ?
你可以改变这个,你不需要嵌入整个代码,相反,如果你的代码包含A、B和C表,你也可以写
where A.[id] = ?
,那么就不需要嵌入括号了。