尝试在函数中使用Select语句时收到错误.错误说明:
Msg 444,Level 16,State 2,Procedure JDE_GetWhereClause_test,Line 26
Select statements included within a function cannot return data to a client.
有任何想法吗?
CREATE FUNCTION [dbo].[JDE_GetWhereClause_test] ( @tablename as varchar ) RETURNS varchar(max) AS BEGIN -- Declare the return variable here Declare @ResultVar as varchar(max) -- Add the T-sql statements to compute the return value here set @tablename = 'F0101' Declare @sql nvarchar(max) Declare my_cur cursor for SELECT fsuser FROM dbo.JDE_ExRowSecurity where fsuser = fsuser; Declare @fsuser as nchar(15) open my_cur; fetch next from my_cur; while @@fetch_status = 0 begin fetch next from my_cur into @fsuser; set @ResultVar += ',' + @fsuser; end; close my_cur; deallocate my_cur; -- Return the result of the function RETURN @ResultVar END
解决方法
尝试玩像……
CREATE FUNCTION [dbo].[JDE_GetWhereClause_test] ( @tablename as varchar ) RETURNS varchar(max) AS BEGIN -- Declare the return variable here Declare @ResultVar as varchar(max) -- Add the T-sql statements to compute the return value here set @ResultVar = (select STUFF((SELECT ',',fsuser as [text()] FROM dbo.JDE_ExRowSecurity FOR XML PATH ('')),1,'') as blah) -- Return the result of the function RETURN @ResultVar END
选择’答案是:'[dbo].[JDE_GetWhereClause_test](‘无论’)