问个容易的SQL

问个简单的SQL
大致形式
declare   @sql   varchar(100)
set   @sql   =   '   1=1 '
select   *   from   table1   where     @sql
出错
因为句子比较长,写起来麻烦,不太可能用这种形式
declare   @sql   varchar(100)
declare   @sql1   varchar(1000)
set   @sql   =   '   1=1 '
set   @sql1   =   'select   *   from   table1   where   '+   @sql
exec(@sql1)
有没有其它方法???

------解决方案--------------------
如果要在数据库这边做,拼SQL的话,最大只有varchar(8000)
------解决方案--------------------
这样的 执行 只能用字符串 拼接
------解决方案--------------------
如果太长了,可以先把一部分建立一些临时表,最后在关联
------解决方案--------------------
如果是拼只能是用动态执行Sql语句了,比如用sp_executeSql.