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

解决方案 »

  1.   

    CREATE PROCEDURE dbo.StoredProcedure1
    (
    @PID nvarchar(10)
    )AS
    /* SET NOCOUNT ON */
             DECLARE @sqlstr nvarchar(1024)
             DECLARE @num int         SET @sqlstr = 'select count(id) from table1 where pid = convert(int, '' ' + @PID + ''')'
             set @num = exec @sqlstr//语句有错,如何获取返回值
             --
    RETURN(@num)
      

  2.   

    用动态参数传递
    CREATE PROCEDURE dbo.StoredProcedure1
    (
    @PID nvarchar(10)
    )AS
    /* SET NOCOUNT ON */
             DECLARE @sqlstr nvarchar(1024)
             DECLARE @num int         SET @sqlstr = 'select @re=count(id) from table1 where pid = convert(int, '' ' + @PID + ''')'
             exec sp_executesql @sqlstr,N'@re int output',@num out   --在这里改为动态参数传递的执行方法.
    RETURN