这个sql语句的意思是什么

create table Product
(
此处省略N个字
constraint PK_Product primary key clustered (ProductID asc)
)
这是设置主键吗? 与直接在创建字段时写primary key 有什么区别 怎么还asc排序呢?

第1个回答  2011-03-05
ect 只是起到赋值的作用,和set是一样的,就算两个一起运行,也不会有结果集。

exec(@sql) 将变量@sql里的字符串作为sql语句执行,这才是返回结果集的语句...

再粗略看了一下。

Select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']'
from (select distinct Subject from cj) as cj

这里可以理解为一个循环

select distinct Subject from cj 从成绩表里查询出不同名称的科目,有多少科目,就循环多少次。

循环依次将 sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']' 这段字符串追加到@sql里。

Subject的值,是从子查询 (select distinct Subject from cj) 的结果集里取出的。

最后动态生成的语句,就是把所有的科目作为列名,把成绩列出来...
第2个回答  2011-02-22
把ProductID设置为主键,升序、聚集所引。
与直接创建的没什么不同本回答被提问者采纳
相似回答