首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-01-18 
存储过程问题,哪位好心的朋友帮忙看看,急~~~~~~~~~~~~~~~~~我有一个存储过程,一个参数指定要操作的表名,一

存储过程问题,哪位好心的朋友帮忙看看,急~~~~~~~~~~~~~~~~~
我有一个存储过程,一个参数指定要操作的表名,一个指定条件
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 

热点排行