在应用程序中,我正在移植到Web上,我们当前在运行时根据“模板”动态地从运行时动态访问不同的表,指定的字符串。现在我们正在转向SQL服务器,因此我想将这样做的负担移回数据库,所以我不必惹恼动态的GridView。我想写一个表值的UDF,其中一个参数用于表名,一个用于查询WHERE子句。如何从UDF参数中提供SELECT语句的FROM子句
我为我的UDF输入了以下内容,但显然它不起作用。有什么办法可以采取某种varchar或字符串,并获得可以在FROM子句中工作的表引用?
CREATE FUNCTION TemplateSelector
(
@template varchar(40),
@code varchar(80)
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM @template WHERE ProductionCode = @code
)
或者其他一些获得结果集的方法在概念上与此类似。基本上,varchar @template指示的表中的所有记录都与@code的生产码相匹配。
我得到错误“必须声明表变量”@template“”,所以SQL服务器可能是我试图从表变量中选择的东西。
On编辑:是的,我不需要在一个函数中做,我可以运行Stored Procs,我之前没有写过任何一个。
工作危险将鲁宾逊!检测到sql注入! :P – annakata 2008-12-08 16:40:00
这不行! – 2008-12-08 16:44:00
@Chris Lively - 好久不见人!无论如何,你怎么会在这个不可靠的工作中结束呢? – 2008-12-08 16:46:40