exec (@str)
===============>
exec sp_executesql @str,N'@strID nvarchar(50) output',@strID output

解决方案 »

  1.   

    用以下存储过程后
    DECLARE @strID nvarchar(50) 
    execute GetIDString '100','excursion0',@strID output
    SELECT @strID
    结果为
    服务器: 消息 8162,级别 16,状态 2,过程 GetIDString,行 0
    形式参数 '@strID' 定义为 OUTPUT,但实际参数却未声明为 OUTPUT。(所影响的行数为 1 行)
    网格显示为:
       输出
    1  NULL
    还是不对
      

  2.   

    try:
    CREATE  PROCEDURE GetIDString
    @chrInput nvarchar(10),--指定行参数
    @py nvarchar(20),--指定列参数
    @strID nvarchar(50) OUTPUT--输出参数
     AS
    declare @str nvarchar(500)
    print @py
    set @str = N'SELECT @strID='''+@py+''' FROM tabindex WHERE chru='''+@chrInput +''''
    --从tabindex表中获取chru列=@chrInput的行的@py的字段值
    print @str
    exec (@str)