http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=2.274722E-02

解决方案 »

  1.   

    @ResultStr不能被包含在‘’号里面的·
      

  2.   

    参考:declare @tcnt int
    declare @paras varchar(100)
    DECLARE @SQLString NVARCHAR(500)
    set @paras ='1,3,5'
    set @sqlstring=N'select @cnt=count(*) from sysobjects where id in ('+@paras+')'set @tcnt=0
    execute sp_executesql 
              @sqlstring,
              N'@cnt int output',
      @cnt=@tcnt output
    select @tcnt
    select * from sysobjects
    参考:
    Create Procedure GetMaxID
    @TableName varchar(100), @ID int output
    as
    begin
    declare @sql nvarchar(1000)
    set @sql='select @ID = count(ID) from '+@TableName
    exec sp_executesql @sql,N'@id int output',@id output
    end
      

  3.   

    declare @ColName varchar(20),@sql nvarchar(4000),@ResultStr varchar(8000)set @ColName='MIName'
    set @sql=N'declare @ResultStr varchar(8000) @ResultStr='''' select @ResultStr=@ResultStr+' +@ColName+'+''<br>'' from TBidMaterial a join TMaterialInfo b on a.MIID=b.MIID and a.QuoteID=2 set @out=@ResultStr'exec sp_executesql @sql,N'@a varchar(8000) output',@ResultStr output
    select @ResultStr
      

  4.   

    declare @ColName varchar(20),@sql nvarchar(4000),@ResultStr varchar(8000)set @ColName='MIName'
    set @sql=N'declare @ResultStr varchar(8000) set @ResultStr='''' select @ResultStr=@ResultStr+' +@ColName+'+''<br>'' from TBidMaterial a join TMaterialInfo b on a.MIID=b.MIID and a.QuoteID=2 set @out=@ResultStr'exec sp_executesql @sql,N'@a varchar(8000) output',@ResultStr output
    select @ResultStr
      

  5.   

    有意思,不過大力寫SQL時要是能加上注釋那就更好了