固定字段?动态字段?是这个意思吗?--固定字段 select col1,col2 from tablename--动态字段 declare @t varchar(20) set @t='col1,col2' exec('select ' +@t +' from tablename')
不是动态SQL语句的意思,是动态字段,有程序控制的。
用存储过程 封装列名动态语句就需要动态,只有参数为条件时可以不用动态Create proc P ( @Cols nvarchar(1000)='*'--没提定时查所有列 ) as exec('select ' +@t +' from tablename') go exec P Cols='col1,col2'
select col1,col2 from tablename--动态字段
declare @t varchar(20) set @t='col1,col2'
exec('select ' +@t +' from tablename')
用存储过程 封装列名动态语句就需要动态,只有参数为条件时可以不用动态Create proc P
(
@Cols nvarchar(1000)='*'--没提定时查所有列
)
as
exec('select ' +@t +' from tablename')
go
exec P Cols='col1,col2'