2014-04-10 43 views
0

我有一个函数,它具有3个参数,我想使用BIDS将其放入SSRS。SQL将函数转换为存储过程

我需要这个功能转换为存储过程来做到这一点,但我不能得到这个工作。

在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 

回答

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) 
+1

工作完美! – Matt

+2

@Matt你应该接受答案,如果它帮助你。 –

+1

@ M.Ali我是,你可以接受问题创建后的第一〜15分钟。 – Matt