★o★大家来看看/ 存储过程 /的问题★
★o★大家来看看/   存储过程   /的问题★   
 CREATE   PROCEDURE   proName 
 ( 
    @ShowNum   int, 
    @SortID   int 
 )   
 AS   
       DECLARE   @SQL   VARCHAR(100)    
       DECLARE   @NUM   INT 
       SET   @NUM   =   @ShowNum     
       SET   @SQL   =    'SELECT   TOP    '+CAST(@NUM   AS   VARCHAR(20))+ '   *   From   News   where   SortID   =@SortID   or   SortID   IN   (Select   ID   from   NewsSort   where   ParentID   =   @SortID)      order   by   ID   desc '   
 EXEC(@SQL) 
 GO   
 ------------- 
 VS.net   2005   中使用   SqlDataSource绑定时   
 报错信息:   
 执行查询时出错。请检查命令的语法以及参数的类型和值(如果有)。确保他们正确。 
 必须声明变量    '@SortID '。 
 第1行: 'ParentID '附近有语法错误。   
 高手指点 
 --------------------- 
 把后面where条件去掉时,这个存储过程是可以使用的。 
------解决方案--------------------SET @SQL =  'SELECT TOP  '+CAST(@NUM AS VARCHAR(20))+ ' * From News where SortID = ' + CAST(@SortID AS VARCHAR(20)) +  ' or SortID IN (Select ID from NewsSort where ParentID =  ' + CAST(@SortID AS VARCHAR(20)) +  ')  order by ID desc '
------解决方案--------------------SET @SQL =  'SELECT TOP  '+CAST(@NUM AS VARCHAR(20))+ ' * From News where SortID =@SortID or SortID IN (Select ID from NewsSort where ParentID = ’+  @SortID)+‘ order by ID desc '
------解决方案-------------------- 'SELECT TOP  '+CAST(@NUM AS VARCHAR(20))+ '* From News where SortID =  '+trim(@SortID) + 'or SortID IN (Select ID from NewsSort where ParentID =  '+ trim(@SortID)+ ' order by ID desc ' 
------解决方案--------------------這邊也回復下。   
 長度的確有問題,但是你上面寫的語句也的確有問題。   
 另外,你要的“截取字符串 的效果”沒說清楚,最好能舉例說明效果。