SQL将函数转换为存储过程

时间:2014-04-10 10:59:36

标签: sql sql-server function stored-procedures

我有一个函数,它有3个参数,我想用BIDS把它放到SSRS中。

我需要将此函数转换为存储过程来执行此操作,但我无法使其工作。

在Select语句中,我在下面的示例中将其全部删除,因为它是大约3000行代码,包含大量单独的选择和子查询。

该功能的创建脚本如下所示。

USE [SERVER1]
GO

/****** Object:  UserDefinedFunction [dbo].[NewFunction]    Script Date: 04/10/2014 11:49:21 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[NewFunction]
(
@start datetime, 
@end datetime, 
@name int 
)

RETURNS TABLE AS RETURN (

SELECT bla, bla, bla LOTS OF SELECTS AND SUB QUERYS IN HERE

FROM    t1
LEFT OUTER JOIN t2 ON t1.f1 = t2.f1 
LEFT OUTER JOIN t3 ON t1.f1 = t3.f1


WHERE f1 IN (@name)
)

GO

1 个答案:

答案 0 :(得分:3)

存储过程的语法是:

CREATE PROCEDURE [dbo].[NewProcedure]
(
@start datetime, 
@end datetime, 
@name int 
)
AS

SELECT bla, bla, bla LOTS OF SELECTS AND SUB QUERYS IN HERE

FROM    t1
LEFT OUTER JOIN t2 ON t1.f1 = t2.f1 
LEFT OUTER JOIN t3 ON t1.f1 = t3.f1

WHERE f1 IN (@name)
相关问题