包含查询中的函数?

时间:2012-08-01 11:32:51

标签: sql-server tsql sql-server-2000

我对依赖于该数据库上安装的函数的测试数据库进行了查询。我需要针对另一台没有该功能且无法安装该功能的服务器运行该查询。

这有什么优雅和/或实用的解决方案吗?这个函数非常复杂,有很多参数,所以我希望有一种语法允许我将查询的一部分标记为函数,然后从查询的主体中调用该代码。

我曾尝试使用谷歌但不幸的是,正如您可能想象的那样,所涉及的词语只会引发有关如何创建功能的文章。

编辑:我仅限于SQL Server 2000功能。

3 个答案:

答案 0 :(得分:1)

你不能只创建一个内联函数吗?由于没有权限,create函数会失败?您可能可以替换CTE。

CREATE FUNCTION fn_Test ( @sID nvarchar(30) )
RETURNS table
AS
RETURN (
        SELECT sID, sParID 
        FROM docSVsys 
        WHERE sID = @sID
       )
GO
-- Example of calling the function for a specific region
SELECT *
FROM fn_Test(N'2')
GO

答案 1 :(得分:1)

此刻我最好的答案来自我自己。我在#temporary表中存储了我需要处理的数据,然后在#temporary表中使用了一个需要更新行的逻辑的while循环。相当多的改造,但它起作用,作为一次运行操作,我很好。

答案 2 :(得分:0)

我不知道这是否可以在MSSQL 2000中实现,但您可以在tempdb上创建一个函数并从那里使用它。

2008年似乎有效。因此,如果您有权在tempdb上执行此操作,则可能会有效。