4

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

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

我试过谷歌,但不幸的是,正如你想象的那样,所涉及的词只会导致关于如何创建函数的文章。

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

4

3 回答 3

1

你不能只创建一个内联函数吗?由于您没有权限,创建功能失败?您也许可以替换 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
于 2012-08-01T11:58:58.317 回答
1

我目前最好的答案来自我自己。我将需要处理的数据存储在#temporary 表中,然后使用while 循环,其中包含更新#temporary 表中行所需的逻辑。相当多的返工,但它有效,作为一次运行的操作,我对此很好。

于 2012-10-03T09:40:48.467 回答
0

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

在 2008 年,它似乎奏效了。因此,如果您有权在 tempdb 上执行此操作,这可能会起作用。

于 2012-08-01T13:12:42.607 回答