ALTER Proc [dbo].[P_S_Count]
@TabName SYSNAME,
@ReturnValue INT OUTPUT
AS
SET NOCOUNT ON
EXECUTE @ReturnValue=('SELECT COUNT(*) FROM '+@TabName+'')
有错误,这么样才可以正常运行
@TabName SYSNAME,
@ReturnValue INT OUTPUT
AS
SET NOCOUNT ON
EXECUTE @ReturnValue=('SELECT COUNT(*) FROM '+@TabName+'')
有错误,这么样才可以正常运行
ALTER Proc [dbo].[P_S_Count]
@TabName SYSNAME,
@ReturnValue INT OUTPUT
AS
BEGIN
SET NOCOUNT ON
DECLARE @sql NVARCHAR(1000)
SET @sql='SELECT @ReturnValue=COUNT(*) FROM '+@TabName
EXECUTE sp_executesql @sql, N'@ReturnValue INT OUTPUT', @ReturnValue
END
drop proc P_S_Count
go
-- P_S_Count 'tb1'
create Proc [dbo].[P_S_Count]
(@TabName SYSNAME)
AS
BEGIN
SET NOCOUNT ON
DECLARE @sql NVARCHAR(4000),@parms NVARCHAR(1000),@ReturnValue1 int
set @sql=N'SELECT @ReturnValue=COUNT(*) FROM '+@TabName
set @parms=N'@ReturnValue int output' EXECUTE sp_executesql
@sql,
@parms,
@ReturnValue=@ReturnValue1 output select @ReturnValue1
END
--
这也是一种解决方法,区别就是他把输出型变量在内部定义,而外面的程序调用存储过程时,用不找再定义输出型变量
@TabName SYSNAME,
@ReturnValue INT OUTPUT
AS
SET NOCOUNT ON declare @sql nvarchar(1000)
set @sql='SELECT @i=COUNT(*) FROM '+@TabNameEXECUTE sp_executesql @sql,N'@I int output',@returnvalue output
如果在存储过程中用到了EXECUTE sp_executesql,而且有输出型参数,那么执行会出错,提示找不到哪个输出型参数
没有找到原因
ALTER Proc [dbo].[P_S_Count]
@TabName SYSNAME,
@ReturnValue INT OUTPUT
AS
SET NOCOUNT ON declare @sql nvarchar(1000)
set @sql='SELECT @i=COUNT(*) FROM '+@TabNameEXECUTE sp_executesql @sql,N'@I int output',@returnvalue
能解释下吗????也就是最后一行
ALTER Proc [dbo].[P_S_Count]
@TabName SYSNAME,
@ReturnValue INT OUTPUT
AS
SET NOCOUNT ON declare @sql nvarchar(1000)
set @sql='SELECT @i=COUNT(*) FROM '+@TabNameEXECUTE sp_executesql @sql,N'@I int output',@returnvalue output --加上output