--楼主,我觉得首先要搞清楚的是这段代码的功能:返回一个级联目录的关系
--请把代码结合返回的结果一起看,你就会更加理解代码的功能
DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))--声明一个表变量,名称为@t
--向表变量中插入测试数据
INSERT @t SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
--深度排序显示处理
--生成每个节点的编码累计(相同当单编号法的编码)
DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))--声明一个表变量
DECLARE @Level int--声明一个级别变量,整型
SET @Level=0--赋初值为0,作为根节点
INSERT @t_Level SELECT ID,@Level,ID FROM @t WHERE PID IS NULL --把表变量@t中pid为空的数据,插入到@t_level中,这里就是相当于建立根节点的意思,因为@level=0
WHILE @@ROWCOUNT>0--如果影响的行数值得如果是大于0的,那么执行下面的循环
BEGIN
SET @Level=@Level+1--这里加1,就是设置到子节点的意思
INSERT @t_Level SELECT aID,@Level,bSort+aID FROM @t a,@t_Level b WHERE aPID=bID AND bLevel=@Level-1
--这里循环插入的数据就是根节点和节点的关系到@t_level,字段level就是用来划分层次的,level=0是最顶层的
END
--显示结果,就是现实完整的根节点,子节点,函数space()是现实多少个空格,顶层的是没有空格的,比如“|--山东省”
--最小的节点空格是最多的,比如:“ |--小分市”
SELECT SPACE(bLevel2)+'|--'+aName
FROM @t a,@t_Level b
WHERE aID=bID
ORDER BY bSort
这个@Level是干什么用的,怎么select里有两个ID
解释:@level是用来划分根节点和子节点用的,根节点level的值为0;
select里的两个id,一个是用来关联表用的,另外一个是用来排序用的。
1、
Create DATABASE GameSQL -- 创建数据库GameSQL
ON PRIMARY -- 表示数据库表存储在PRIMARY文件组中
(NAME= Game, --文件逻辑名称
FILENAME='e:\gamemdf', -- 文件 *** 作系统名称
SIZE=5MB, -- 初始文件大小
MAXSIZE=20MB, -- 最大文件大小
FILEGROWTH=10%) --按10%增长
LOG ON -- 日志文件
(NAME=GameLog, --日志文件逻辑名
FILENAME='e:\game_logldf', -- 日志文件 *** 作系统名
SIZE=5MB, --日志文件初始大小
MAXSIZE=20MB, -- 日志文件最大大小
FILEGROWTH=1MB) -- 按每次1M增长
-- 完成建立一个数据库
2、
create trigger t_stu4 -- 触发器名称
on 课程表 -- 对课程表建立触 发器
after delete -- 在删除后触 发
as
declare @kcbm varchar(5) -- 定义变量
select @kcbm = 课程编码 from deleted --取删除的课程编码
delete from 成绩表 -- 删除成绩表中该编码的数据
where 课程编码 =@kcbm
go
-- 对课程表建立删除触发器
--测试
delete from 课程表 where 课程编码 ='00008'
3、
DECLARE cur_game CURSOR -- 定义一个游标
SCROLL -- 游标移动方面
FOR
SELECT A学号, A姓名, B成绩 -- 游标的数据源
FROM 学生基本信息 A,成绩表 B
where A学号=B学号
OPEN cur_stu3 -- 打开游标
DECLARE @xh varchar(15), @name varchar(20),@score int -- 定义变量
FETCH next from cur_stu3 into @xh,@name,@score -- 获取游标数据
print '学号 姓名 成绩' -- 显示
while @@FETCH_STATUS=0 --对游标进行 循环
BEGIN -- 循环体
print @xh+' '+ @name +' '+convert(varchar,@score)
FETCH next from cur_stu3 into @xh,@name,@score
END
CLOSE cur_stu3
DEALLOCATE cur_stu3
数据库我只会mysql
MySQL可以在SQL代码中注释的。
据我所知,可用两个方式经行注释……
以“ #”号开头直到行尾的所有内容都认为是注释。
另一种为C 风格的注释。即,以“/ ”开始,以“ /”结束的所有内容都认为是注释。C 风格的注释可跨多行。
举例:
命令XXOO #注释
#这是注释
/这也是注释/
/你看到的
这几行字符
都是注释啊/
当然楼上说的也是对的
也可以用两个短划线和一个空格(“-- ”)来注释
比如:
-- 这个依然是注释
但是一定要在“--”后面加上空格 要不然有可能会被识别为表达式
带有如像“5--7 ”这样的表达式的语句有可能被认为包含一个注释,
但不可能写“5-- 7”这样的表达式。
不过,这仅仅是一个例子,最好不用这种风格的注释。
希望能够保住到你
建表sql语句如下:
--创建学员信息数据表use 所用数据库名
go
if exists (select from sysobjects where name='Students')
drop table Students
go
create table Students
(
StudentId int identity(100000,1) , --主键
StudentName varchar(20) not null,
Gender char(2) not null,
Birthday smalldatetime not null,
StudentIdNo numeric(18,0) not null,--身份z号
StudentAddress varchar(500)
)
go
--创建数据表的各种约束
use 所用数据库名
go
--创建“主键”约束primary key
if exists(select from sysobjects where name='pk_StudentId')
alter table Students drop constraint pk_StudentId
alter table Students add constraint pk_StudentId primary key (StudentId)
可以。
MySQL可以对数据库进行注释。在MySQL中,可以使用"--"或"/…/"语法来对数据库进行注释。例如,可以使用"--"在单行中注释一条SQL语句,如下所示:SELECTFROMusers--这是一条注释。
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。
MySQL可以在SQL代码中注释的。可用两个方式经行注释。
1以“#”号开头直到行尾的所有内容都认为是注释。
2另一种为C风格的注释。即,以“/”开始,以“/”结束的所有内容都认为是注释。C风格的注释可跨多行。
举例:
命令XXOO#注释
#这是注释
/这也是注释/
/你看到的
这几行字符
都是注释啊/
也可以用两个短划线和一个空格(“--”)来注释。
比如:
--这个依然是注释
但是一定要在“--”后面加上空格要不然有可能会被识别为表达式。带有如像“5--7”这样的表达式的语句有可能被认为包含一个注释。但不可能写“5--7”这样的表达式。
以上就是关于谁能帮我详细注释下这段SQL语言,谢谢!全部的内容,包括:谁能帮我详细注释下这段SQL语言,谢谢!、针对每一条T-SQL语句以正确的注释方式并指出每一个题目中的整段代码要完成什么功能、数据库中怎样表示注释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)