奇特的用法:把列名取到一个字符串中

网络整理 - 08-10
if exists(select * from sysobjects where type=''P'' andsys_ysl_getColumnNameToArrayByTableName'' )
drop procedure sys_ysl_getColumnNameToArrayByTableName
go
create procedure sys_ysl_getColumnNameToArrayByTableName
@tablename varchar(100),
@colnameArrayList varchar(1000) output

With
Encryption
as
declare @sql nvarchar(1000)
declare @colnameArray varchar(1000)
declare @colname varchar(50)
SET @sql =N''DECLARE CUR_COLNAME CURSOR FOR select a.name from syscolumns a inner join sysobjects b on a.id=b.id where b.name=''''''+@tablename+N'''''' order by a.colorder ''

execute sp_executesql @sql

OPEN CUR_COLNAME
WHILE (0=0)
BEGIN
FETCH NEXT FROM CUR_COLNAME
INTO @colname

If (@@fetch_status<>0) break

IF @colnameArray<>''''
set @colnameArray=@colnameArray+'',''+@colname
Else
set @colnameArray=@colname

END

Close CUR_COLNAME
DEALLOCATE CUR_COLNAME

set @colnameArrayList=@colnameArray


/*
print @colnameArrayList -- 供测试使用

--测试代码
DECLARE @@AA VARCHAR(100)
exec sys_ysl_getColumnNameToArrayByTableName ''SPBLA'',@@AA
--结束

sp_helptext sys_ysl_getColumnNameToArrayByTableName --查看过程文本
*/