方法一:declare @columns varchar(max)= ''select @columns = @columns+'['+name+'],' from logs..syscolumns where ID = OBJECT_ID('logs..'+@user+'_tablename')set @columns = replace(@columns,',[objid],','')sqlserver 2014不能用這種方法,因為14中會將name排序之后再進行獲取,導致最后replace時,字符串錯誤,可以用方法二解決此問題。方法二:declare @columns varchar(max)=''select @columns =@columns +','+name From logs..syscolumns where id=object_id('logs..'+@user+'_tablename')and name not in('objid') set @columns = left(@columns ,len(@columns)-1)