如果你不是很挑剔,可以用这个存储过程 --getnota_proc 'sysobjects' --drop proc getnota_proccreate proc getnota_proc @tablename varchar(50) as begin declare @i integer declare @column varchar(100) declare @strsql varchar(2000) select @strsql='select ' select @i=1 declare C_name cursor for select name from syscolumns where id=(select id from sysobjects where name=''+@tablename+'') open C_name fetch next from C_name into @column while @@FETCH_STATUS = 0 begin if @column<>'a' begin if @i=1 begin select @strsql=@strsql+@column select @i=@i+1 end else begin select @strsql=@strsql+','+@column select @i=@i+1 end end fetch next from C_name into @column end select @strsql=@strsql+' from '+@tablename exec(@strsql) close C_name deallocate C_name end
to :搂主我的意思是,可能没有更好的办法 如果有这种语法的话,最处级的sql语法书中讲解select语句时也会提到
--getnota_proc 'sysobjects'
--drop proc getnota_proccreate proc getnota_proc
@tablename varchar(50)
as
begin
declare @i integer
declare @column varchar(100)
declare @strsql varchar(2000)
select @strsql='select '
select @i=1
declare C_name cursor for
select name from syscolumns where id=(select id from sysobjects where name=''+@tablename+'')
open C_name
fetch next from C_name into @column
while @@FETCH_STATUS = 0
begin
if @column<>'a'
begin
if @i=1
begin
select @strsql=@strsql+@column
select @i=@i+1
end
else
begin
select @strsql=@strsql+','+@column
select @i=@i+1
end
end
fetch next from C_name into @column
end
select @strsql=@strsql+' from '+@tablename
exec(@strsql)
close C_name
deallocate C_name
end
如果有这种语法的话,最处级的sql语法书中讲解select语句时也会提到