方法一: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不能用這種方法,因?yàn)?4中會(huì)將name排序之后再進(jìn)行獲取,導(dǎo)致最后replace時(shí),字符串錯(cuò)誤,可以用方法二解決此問(wèn)題。方法二: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)