本帖最后由 pengxiang_px 于 2012-10-30 10:39:54 编辑

解决方案 »

  1.   

    定义 
    declare   @t   table(name   char(10)) 
    赋值 
    insert   into   @t(name)   values(   'n1 ') 
    显示 
    select   *   from   @t
      

  2.   

    那个都可以 ,如果你想用 动态 SQL 就要用 sys.sp_execute........ 来执行。如果你 固定 参数 那你就直接 select * from where name =@name 就完事了 
    但是 变量 一定是 定义过的。
      

  3.   

    而且 SQL 里的 ' 在字符串中 要 写 成 ''
      

  4.   

    再问一个新问题,如果我全部设置成参数,包括字段,表,如:
    定义@strTable,@strWhat,@strWhere,@strOrder,然后写一个通用的存储过程:
    ' select '+ @strWhat + ' from ' + @strTable + ' where ' + @strWhere + 'Order by' + @strOrder
    这样写是不是太灵活了,但是从存储过程性能上是不是会下降,因为存储过程都是预编译的,直接来执行,现在都传成参数,就不能进行预编译,会不会变慢啊?这个地方不是很懂..
      

  5.   

    第二种,不然你的数据没有办法通过sqlparamater来防止sql注入,保持每个数据的类型合法性。
    虽然多参数写起来麻烦些,但是也是有目的的