谁SQLServer 帮我运行一下这些语句,

laorer 2008-06-17 11:18:48



CREATE TABLE `tb` (
`id` varchar(20) NOT NULL,
`name` varchar(50) default NULL,
`grade` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE function getTree(@parentId varchar(20), @level int =1)
returns @t table(name varchar(50),id varchar(20),parent varchar(20), grade int)
as
begin
declare @id varchar(20);
declare @name varchar(50);

//游标定义
declare cur1 CURSOR FOR select name,id from table where grade = @level + 1 and substring(id,0,2*level)= parentId ;
//游标介绍定义
// declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tid = null;

//开游标
OPEN cur1;
FETCH cur1 INTO @name, @id;

WHILE ( @id is not null )
DO
insert into @t values(@name,@id, @parentId,@level +1);
//树形结构数据递归收集到建立的临时表中
call useCursor(@id,@level +1);
FETCH cur1 INTO @name,@id ;
END WHILE;
//关闭游标
CLOSE cur1 ;
// 删除游标
DEALLOCATE cur1;
END;//

select getTree('00',1); //调用



机子上没装sqlserver ,帮我运行下,并把错误的地方发帖下,谢了
...全文
97 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hye4 2008-06-18
  • 打赏
  • 举报
回复
为什么要在sqlserver下运行?楼主做开发吗?开发没sqlserver?
hye4 2008-06-18
  • 打赏
  • 举报
回复
开发环境肯定要装的,要不很多代码你会认为想当然的
laorer 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hye4 的回复:]
为什么要在sqlserver下运行?楼主做开发吗?开发没sqlserver?
[/Quote]
。。。自己机子上没装啦,
看来,什么程序都要装了,还是要自己调调,SQL。。。。对存储过程头痛啊
morganadapter 2008-06-18
  • 打赏
  • 举报
回复
这是结果
消息 102,级别 15,状态 1,第 1 行
'`' 附近有语法错误。
消息 111,级别 15,状态 1,第 9 行
'CREATE FUNCTION' 必须是查询批次中的第一个语句。
消息 102,级别 15,状态 1,第 16 行
'/' 附近有语法错误。
消息 156,级别 15,状态 1,第 17 行
关键字 'table' 附近有语法错误。
消息 136,级别 15,状态 1,第 19 行
不能在 WHILE 语句的作用域之外使用 CONTINUE 语句。
消息 102,级别 15,状态 1,第 26 行
'DO' 附近有语法错误。
消息 1087,级别 15,状态 2,第 27 行
必须声明表变量 "@t"。
消息 102,级别 15,状态 1,第 31 行
';' 附近有语法错误。
消息 102,级别 15,状态 1,第 34 行
'/' 附近有语法错误。
消息 102,级别 15,状态 1,第 36 行
';' 附近有语法错误。
消息 195,级别 15,状态 10,第 38 行
'getTree' 不是可以识别的 内置函数名称。
看来不是SQLSERVER的
laorer 2008-06-17
  • 打赏
  • 举报
回复
帮我运行下啊,.....
youzy 2008-06-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bootupnow 的回复:]
这个貌似是mysql的script吧,不能用在mssql里的
[/Quote]
同意
laorer 2008-06-17
  • 打赏
  • 举报
回复
sorry, table是在mysql的 workbench生成的,


CREATE TABLE `tb` (
`id` varchar(20) NOT NULL,
`name` varchar(50) default NULL,
`grade` int(11) default NULL,
PRIMARY KEY (`id`)
);

这样差不多吧,主要是那个函数,不知道有没有错,只是在别的基础上改过来的 ....
bootupnow 2008-06-17
  • 打赏
  • 举报
回复
这个貌似是mysql的script吧,不能用在mssql里的
laorer 2008-06-17
  • 打赏
  • 举报
回复
....我再加油,就直接把这个帖子结了,呵呵

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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