日期:2014-05-18  浏览次数:20490 次

动态sql语句
现在有一个函数,如下:
CREATE   FUNCTION   dbo.search_se(@id     nvarchar(10))
RETURNS   nvarchar(300)
AS
BEGIN

DECLARE   @re   nvarchar(3000)          
                        SET   @re= ' '                    
SELECT   @re=@re+   '/ '+     CAST(Bs   as   varchar)
FROM   tableName
WHERE   Id=@Id  
                      return   STUFF(@re,1,1, ' ')
END
现在tableName需要改变且该函数在多个存储过程中都调用。经过查资料发现函数内不能使用动态SQL。现在该怎么办?

------解决方案--------------------
用存储过程也可以实现
CREATE proc search_se
@id nvarchar(10),
@re nvarchar(3000) output
AS

SET @re= ' '
SELECT @re=@re+ '/ '+ CAST(Bs as nvarchar)
FROM tableName
WHERE Id=@Id