ALTER FUNCTION F_AccountObj ( @obj NVARCHAR(50) )
RETURNS NVARCHAR(200)
AS
BEGIN
DECLARE @str NVARCHAR(200)
DECLARE @num INT
DECLARE @next INT
DECLARE @length INT
SET @next = 1
SET @length = 0
SET @str = ''
SELECT @length = dbo.Get_StrArrayLength(@obj)
WHILE @next <= @length
BEGIN
SELECT @num = dbo.Get_StrArrayStrOfIndex(@next)
SELECT @str+= systems_des
FROM dbo.NMS_Base_System
WHERE Systems_ID = @num
SET @next += 1
END
RETURN @str END
go
RETURNS NVARCHAR(200)
AS
BEGIN
DECLARE @str NVARCHAR(200)
DECLARE @num INT
DECLARE @next INT
DECLARE @length INT
SET @next = 1
SET @length = 0
SET @str = ''
SELECT @length = dbo.Get_StrArrayLength(@obj)
WHILE @next <= @length
BEGIN
SELECT @num = dbo.Get_StrArrayStrOfIndex(@next)
SELECT @str+= systems_des
FROM dbo.NMS_Base_System
WHERE Systems_ID = @num
SET @next += 1
END
RETURN @str END
go
因为最开始 是这样ALTER FUNCTION F_AccountObj ( @obj NVARCHAR(50) )
ALTER FUNCTION F_AccountObj ( @obj NVARCHAR(50) )
RETURNS NVARCHAR(200)
AS
BEGIN DECLARE @strsql NVARCHAR(200) SET @strsql = '
DECLARE @str NVARCHAR(100)
SET @str=''''
SELECT @str+=systems_des + '','' FROM dbo.NMS_Base_System WHERE Systems_ID IN ('
+ @obj + ')
'
PRINT @strsql
EXEC (@strsql)
RETURN ''
END
go
function 中不能使用print 不能使用exec