GetTableFields --参数:传入要剔除的自增字段; '-1'-自动剔除自增字段; ''输出全部字段

CREATE FUNCTION [dbo].[fn_GetTableFields]
(
 @tbName varchar(50), --表名
 @iField varchar(50)  --参数:传入要剔除的自增字段; '-1'-自动剔除自增字段; ''输出全部字段
)
RETURNS varchar(1000)
AS
BEGIN
 DECLARE @IDEfield sysname
 IF @iField='-1'
  SELECT @IDEfield=c.name FROM sysobjects o, syscolumns c, systypes t  
   WHERE o.name=@tbName AND o.id=c.id AND c.xusertype=t.xusertype AND c.status=0x80
 ELSE
  SELECT @IDEfield=@iField

 DECLARE @fName varchar(50),@S varchar(1000)
  SET @S=''
  DECLARE curF CURSOR FOR
  SELECT a.name FROM syscolumns a, systypes b
  WHERE a.xtype=b.xusertype and a.id=(SELECT id FROM sysobjects WHERE xtype='U' and NAME=@tbName)
 OPEN curF
 FETCH NEXT FROM curF INTO @fName

 WHILE @@FETCH_STATUS=0
 BEGIN
  IF Upper(@IDEfield)<>Upper(@fName) 
   SET @S=@S+@fName+', '
   
  FETCH NEXT FROM curF INTO @fName
 END
 CLOSE curF
 DEALLOCATE curF

 SET @S=LEFT(@S,LEN(RTRIM(@S))-1)
 --SET @S=' SELECT ' + RTRIM(@S) +' FROM ' + @tbName + ' '
 RETURN(@S)
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值