【发布时间】:2011-05-11 23:14:45
【问题描述】:
这是我的函数,主要将所有行数据连接到一个字符串中。我知道有一个名为 Coallasce 的函数可用,但是出于好奇,我想知道如何更改此函数以动态接受表名。目前只读取Employee表。
ALTER FUNCTION [dbo].[ConcatStrig]
(
@TableName varchar(64),
@FieldName varchar(64)
)
RETURNS varchar(max)
AS
BEGIN
Declare @Sql as varchar(max) = ''
Set @Sql = 'Select ' + @FieldName + ' from ' + @TableName
Declare curTemp Cursor For
Select EmpName from sp_executesql(@Sql)
Declare @StrTemp as varchar(max)
Declare @String as varchar(max) = ''
Open curTemp
Fetch Next from curTemp into @StrTemp
While @@Fetch_Status = 0
Begin
Set @String = @String + ' ' + @StrTemp
Fetch Next from curTemp into @StrTemp
End
Close curTemp
Deallocate curTemp
Return @String
END
提前致谢:)
【问题讨论】:
标签: sql sql-server-2008