在sql函数中声明变量

我有一个sql函数,我需要在该函数中声明几个变量.请告知我如何实现这一目标.

例如,我需要把 – >

Declare @ClientResult TABLE(
        RowIndex int identity(1,1),SplitText varchar(50) 
    )

在下面的功能.

create FUNCTION [dbo].CLIENT_SHIPPINGREPORTDATA_Function_Test  
(                    
 @CLIENTPK_NEW TABLE,@CGNEEPK TABLE
 @type varchar(100)              
)                 
RETURNS TABLE                    
AS              

RETURN                 

SELECT   distinct              
OP_PartNum,OP_PK       
FROM Client_whsPallet pallet

我正在使用sql server 2005

谢谢

解决方法

你所追求的是一个多语句表函数

例如

CREATE FUNCTION dbo.fxnExample (@Param INTEGER)
RETURNS @Results TABLE(FieldA VARCHAR(50))
AS
BEGIN
INSERT @Results
SELECT SomeField
FROM Somewhere 
WHERE ParamField = @Param

RETURN
END

这与您当前的函数(称为“内联表值函数”)不同,您应该注意这些差异,因为如果切换到多语句方法,这可能会导致性能问题.我的建议是尽可能尝试使用内联表值函数.我建议你查看这些详细介绍的文章

Multi-statement Table Valued Function vs Inline Table Valued Function

http://blogs.msdn.com/b/psssql/archive/2010/10/28/query-performance-and-multi-statement-table-valued-functions.aspx

http://sqlbits.com/Agenda/event6/High_performance_functions/default.aspx

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...