请问
select identity(int,1,1) as counts,* into #tmp_310 from tmp_dj_kdb310 where gzid=@gzid order by jwh asc
这句该怎么用文字翻译和描述作用出来.
select identity(int,1,1) as counts into #tmp_310
from tmp_dj_kdb310 where gzid=@gzid order by jwh asc
分别代表什么意思?
我是属于刚刚开始自学SQL SERVER2000.该从哪个方面学起呢?
从tmp_dj_kdb310表中查询出字段gzid的值等于变量@gzid 的记录内容并添加自动序号,把结果插入到#tmp_310 表中。
gzid=@gzid 是表示字段gzid的值 等于变量@gzid 的值。
select identity(int,1,1) as counts,* into #tmp_310 from tmp_dj_kdb310 where gzid=@gzid order by jwh asc
分解后一个个理解一下
@gzid是一个变量
where gzid=@gzid 是一个查询的条件
order by jwh asc 是按jwh列的升序排序
tmp_dj_kdb310是原表
#tmp_310是新表
identity(int,1,1)是自动增长列
从原表中要获取的信息就是符合查询条件的所有信息并以jwh列的升序排列
而新表中需要插入的内容就是以上获取的所有信息并在前面添加自动增长列
select identity(int,1,1) --->选择Identity这一列
as counts --->以counts作为列的名字
into #tmp_310 --->选出列存放在这里
from tmp_dj_kdb310 --->从本表中选择Identity列
where gzid=@gzid order by jwh asc --->从tmp_dj_kdb310 表中选择Identity列(满足自然连接的条件)并以jwh的升序规则排列