读书人

数据库存储过程有关问题

发布时间: 2011-12-30 23:30:45 作者: rapoo

数据库存储过程问题

C# code
ALTER PROCEDURE dbo.GetAllCounts@DateDeal varchar(50),@Flight varchar(10),@WorkeTime datetime,@ReadValues int outputASselect  @ReadValues=Count(*) from [@DateDeal] where 班次=[@Flight] and 工作时间=[@WorkeTime]对象名 '@DateDeal' 无效。没有行受影响。(返回 0 行)@ReadValues = 0@RETURN_VALUE = 完成 [dbo].[GetAllCounts] 运行。


[解决办法]
declare @sqls nvarchar(4000)
set @sqls='select @a=count(*) from [' + @DateDeal + '] WHERE 班次='+@Flight +'and 工作时间='''+@WorkeTime+''''

exec sp_executesql @sqls,N'@a int output',@ReadValues
[解决办法]
你这里要用动态SQL语句,
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL

eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格


请参照:
http://www.leftworld.net/wenzhang/show/2151.html

读书人网 >C#

热点推荐