为什么这段执行后显示不出结果来?

Zi_Yuan 2009-02-17 05:39:31
declare @theDate datetime,@evi_date datetime
set @theDate='2009-01-11'
while @theDate>@evi_date
begin
DECLARE evi_cursor CURSOR FOR
select evi_date from evidence
--打开游标
OPEN evi_cursor
--取出值
FETCH NEXT FROM evi_cursor INTO @evi_date
select @evi_date
--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM evi_cursor
INTO @evi_date

end
CLOSE evi_cursor --关闭游标
DEALLOCATE evi_cursor --释放游标
end
...全文
99 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2009-02-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 contendskyline 的回复:]
我个人认为不显示结果的原因可能是是:datetime类型的数据不能直接比较大小!
[/Quote]

可以的
Zi_Yuan 2009-02-17
  • 打赏
  • 举报
回复
if exists (select 1 from sysobjects
where id = object_id('evi_date') and type = 'U')
drop table evi_date
create table evi_date(evi_id int,evi_date datetime)
declare @theDate datetime,@evi_date datetime,@evi_id int
set @theDate='2009-01-12'
DECLARE evi_cursor CURSOR FOR
select evi_id,evi_date from evidence order by evi_date
--打开游标
OPEN evi_cursor
--取出值
FETCH NEXT FROM evi_cursor INTO @evi_id,@evi_date
print @evi_id
print @evi_date

--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
--print @evi_date

if(@theDate<@evi_date) break
insert into evi_date (evi_id,evi_date) values(@evi_id,@evi_date)
FETCH NEXT FROM evi_cursor
INTO @evi_id,@evi_date
end
CLOSE evi_cursor --关闭游标
DEALLOCATE evi_cursor --释放游标

select * from evi_date


这样就对了
contendskyline 2009-02-17
  • 打赏
  • 举报
回复
我个人认为不显示结果的原因可能是是:datetime类型的数据不能直接比较大小!
Zi_Yuan 2009-02-17
  • 打赏
  • 举报
回复
if exists (select 1 from sysobjects
where id = object_id('evi_date') and type = 'U')
drop table evi_date
create table evi_date(evi_id int,evi_date datetime)
declare @theDate datetime,@evi_date datetime,@evi_id int
set @theDate='2009-01-12'
DECLARE evi_cursor CURSOR FOR
select evi_id,evi_date from evidence order by evi_date
--打开游标
OPEN evi_cursor
--取出值
FETCH NEXT FROM evi_cursor INTO @evi_id,@evi_date

--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
--print @evi_date
if(@theDate<@evi_date) break
insert into evi_date values(@evi_id,@evi_date)
FETCH NEXT FROM evi_cursor
INTO @evi_id,@evi_date
end
CLOSE evi_cursor --关闭游标
DEALLOCATE evi_cursor --释放游标

select * from evi_date

服务器: 消息 213,级别 16,状态 5,行 19
插入错误: 列名或所提供值的数目与表定义不匹配。
you_tube 2009-02-17
  • 打赏
  • 举报
回复
declare @theDate datetime,@evi_date datetime
set @theDate='2009-01-11'
while @theDate>@evi_date
begin
DECLARE evi_cursor CURSOR FOR
select evi_date from evidence
--打开游标
OPEN evi_cursor
--取出值
FETCH NEXT FROM evi_cursor INTO @evi_date

--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
select @evi_date

FETCH NEXT FROM evi_cursor
INTO @evi_date

end
CLOSE evi_cursor --关闭游标
DEALLOCATE evi_cursor --释放游标
end
moon&sean 2009-02-17
  • 打赏
  • 举报
回复
应该这样写:
declare @theDate datetime,@evi_date datetime
set @theDate='2009-01-11'
while @theDate>@evi_date
begin
DECLARE evi_cursor CURSOR FOR
select evi_date from evidence
--打开游标
OPEN evi_cursor
--取出值
FETCH NEXT FROM evi_cursor INTO @evi_date

--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
select @evi_date
FETCH NEXT FROM evi_cursor
INTO @evi_date

end
CLOSE evi_cursor --关闭游标
DEALLOCATE evi_cursor --释放游标
end
Zi_Yuan 2009-02-17
  • 打赏
  • 举报
回复
消息里面总是出现“命令已成功完成。”,显示不出值
-狙击手- 2009-02-17
  • 打赏
  • 举报
回复
declare @theDate datetime,@evi_date datetime
set @theDate='2009-01-11'
while @theDate>@evi_date
begin
DECLARE evi_cursor CURSOR FOR
select evi_date from evidence
--打开游标
OPEN evi_cursor
--取出值
FETCH NEXT FROM evi_cursor INTO @evi_date

--循环取出游标的值
WHILE @@FETCH_STATUS = 0
BEGIN
select @evi_date
FETCH NEXT FROM evi_cursor
INTO @evi_date

end
CLOSE evi_cursor --关闭游标
DEALLOCATE evi_cursor --释放游标
end
rucypli 2009-02-17
  • 打赏
  • 举报
回复
哪里有显示结果的代码
Zi_Yuan 2009-02-17
  • 打赏
  • 举报
回复
实际上是有记录的

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧