sql语句中的“”和‘’号

这样理解吧:    

1、''是字符界定符,告诉SQL你输入的是字符,SQL已经知道@sitemtext是字符类型,所以不需要。    

2、LIKE   '%XXX%'   可以拆分为   '%'   +   'XXX'   +   '%','XXX'   =   @sitemtext。    

3、EXEC执行字符串:@sitemtext对于EXEC来说变量,但对于EXEC内部的字串指令来说,它是常量,在运行EXEC之前,@sitemtext必然有个确定值(比如@sitemtext='TEST'),如果用1点代替3点,则变成“……NID   =   TEST……”,那字串指令将TEST解析为对象名。    

4、道理同上。 比较笨的方法(也是避免错误的最佳方法):    

A、全部先不加点:            

exec   (declare   mycursor   cursor   for   select   top   @maxitems   SID,NID,NTime   from   (select   top   @mycount   *   from   V_PC_DOWNUPDATE   where   BName   like   '%@sitemtext+%')   as   MyTable   order   by   NTime   desc)    

B、加首尾两点:exec   ('declare   mycursor   cursor   for   select   top   @maxitems   SID,NID,NTime   from   (select   top   @mycount   *   from   V_PC_DOWNUPDATE   where   BName   like   '%@sitemtext+%')   as   MyTable   order   by   NTime   desc')    

C、给字串指令解析为数字的变量加1点:exec   ('declare   mycursor   cursor   for   select   top   '   +   @maxitems   +   '   SID,NID,NTime   from   (select   top   '   +   @mycount   +   '   *   from   V_PC_DOWNUPDATE   where   BName   like   '%@sitemtext+%')   as   MyTable   order   by   NTime   desc')    

C、给字串指令解析为字符的变量加3点:exec   ('declare   mycursor   cursor   for   select   top   '   +   @maxitems   +   '   SID,NID,NTime   from   (select   top   '   +   @mycount   +   '   *   from   V_PC_DOWNUPDATE   where   BName   like   ''%'   +   @sitemtext   +   '%'')   as   MyTable   order   by   NTime   desc')    

D、检查在()里面,除了变量和“+”号,全部变成红色。多写你就会很熟练,直接写出来都可以了,不用那么麻烦。  

posted @ 2010-11-23 11:15  aisoon99  阅读(1309)  评论(0编辑  收藏  举报