导航

sqlserver 动态创建游标的一下经验

Posted on 2009-07-08 19:03  阳光有约  阅读(307)  评论(0编辑  收藏  举报

一天需要动态创建游标 sqlserver2005

但是通过如下方法出错

declare @sqlstr varchar(500)

set @sqlstr= '

decalre cursorname cursor for select * form table where datatime = '''+cast(@datatime as varchar) +''' and ....'

open cursorname

exec (@sqlstr)

报错提示 cursorname 不存在。一开始以为不可以用这中方法建游标,

但找了很多网站质料 都表示该方法可行

于是仔细回头看看 sql语句 ,原来是 '''+cast(@datatime as varchar) +'''  这个地方异常

 @datetime 是 datetime 类型 转换到 varchar 类型的时候 其不像C# 能保持“yyyy-mm-dd mm ss ”的格式

已近变成 mon day year mm ss 这种格式

sql语句错误 根本没有执行select * form table where datatime = '''+cast(@datatime as varchar) +''' and ....'

并不是 不允许 decalre cursorname cursor for select 。。。