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

数据库存储过程有关问题

2011-12-30 
数据库存储过程问题C# codeALTER PROCEDURE dbo.GetAllCounts@DateDeal varchar(50),@Flight varchar(10),

数据库存储过程问题

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

热点排行