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

类别:Asp 点击:0 评论:0 推荐:

if exists(select * from sysobjects where  type='P' and name='sys_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   --查看过程文本
   */

本文地址:http://com.8s8s.com/it/it7922.htm