当前位置: 代码迷 >> ASP.NET >> 存储过程有关问题,哪位好心的朋友帮忙看看,
  详细解决方案

存储过程有关问题,哪位好心的朋友帮忙看看,

热度:9110   发布时间:2013-02-25 00:00:00.0
存储过程问题,哪位好心的朋友帮忙看看,急~~~~~~~~~~~~~~~~~
我有一个存储过程,一个参数指定要操作的表名,一个指定条件
create PROCEDURE userPC 
  @tableName varchar(100),
  @condition varchar(250),
  @RecordCount int output
as
SET NOCOUNT ON --指示存储过程不返回查询影响的行数
  
SELECT @RecordCount = COUNT(*) FROM @tableName where @condition  
go

在查询分析器里运行的时候出现如下错误,请哪位高手帮忙看看,谢谢!!!

////////////////////////////////////////////////
服务器: 消息 137,级别 15,状态 2,过程 userPC,行 8
必须声明变量 '@tableName'。

真的很急

------解决方案--------------------------------------------------------
呵呵 看错了 要这么写的,但是where @condition 是什么意思?
Declare @sql nvarchar(255) 
set @sql= ' '; 
set @sql='SELECT'+ @RecordCount+ '=COUNT(*) FROM'+ @tableName+ 'where' +@condition
exec(@sql)


------解决方案--------------------------------------------------------
SQL code
create   PROCEDURE   userPC                     @tableName     varchar(100),                   @condition     varchar(250),                   @RecordCount   int   output as SET   NOCOUNT   ON   --指示存储过程不返回查询影响的行数     DECLARE @sql NVARCHAR(100)SET @sql = N'SELECT @count=COUNT(*) FROM ' + @tableName + ' WHERE ' + @conditionEXEC sp_executesql @sql, N'@count INT OUTPUT', @count=@RecordCount OUTPUTgo
------解决方案--------------------------------------------------------
随手敲的,未测试.



SQL code
DECLARE @sql NVARCHAR(1000),@count INTSET @sql=N'SELECT @count=COUNT(*) FROM ' + @tableName + ' WHERE ' + @condationEXEC sp_executeSQL @sql,N'@count INT OUTPUT',@count OUTPUT
------解决方案--------------------------------------------------------
SQL code
CREATE PROC procName( @id INT, @x VARCHAR, @count INT OUTPUT)AS   BEGIN      SELECT * FROM tb WHERE id=@id AND v LIKE '%' + @x + '%'      SELECT @count=@@ROWCOUNT   END
  相关解决方案