问题及描述:
--1.学生表
Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
--2.课程表
Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号
--3.教师表
Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名
--4.成绩表
SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数
*/
--创建测试数据
create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10))
insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男')
insert into Student values('02' , N'钱电' , '1990-12-21' , N'男')
insert into Student values('03' , N'孙风' , '1990-05-20' , N'男')
insert into Student values('04' , N'李云' , '1990-08-06' , N'男')
insert into Student values('05' , N'周梅' , '1991-12-01' , N'女')
insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女')
insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女')
insert into Student values('08' , N'王菊' , '1990-01-20' , N'女')
create table Course(C# varchar(10),Cna ......
1.求1..10偶数之和
select sum(level) from dual
where mod(level,2)=0
connect by level
2.将update改换成用rowid来实现。
(1)新的写法:
merge into SNAPSHOT120_2010_572 t1
using (select a.rowid rid, b.vip_level, b.manager_name
from xyf_vip_info_new b, snapshot120_2010_572 a
where b.sub_id = a.sub_id) t2
on (t1.rowid=t2.rid)
when matched then
update set t1.vip_level=t2.vip_level, t1.vip_manager=t2.manager_name
when not matched then
insert (t1.vip_level) values (null);
(2)新奇的写法
UPDATE (SELECT a.vip_level, a.vip_manager,b.vip_level AS b_vip_level, b.manager_name
from snapshot120_2010_572 a,xyf_vip_info_new b
WHERE b.sub_id = a.sub_id
)
SET vip_level = b_vip_level,vip_manager=manager_name;
3.求各个分值和总的数目
select decode(grouping(a.com_name ......
当使用Microsoft SQL Server 2008 Management Studio时,有时在表设计器中对表所做的更改无法保存,具体表现为:点击保存按钮后弹出保存对话框提示:不允许保存修改(Saving changes is not permitted),弹出的对话框只有2个按钮可以点击,一个Cancel一个Save Text File,前一个就不用说了,后一个保存的文件根本没意义(可以自己试一下),而且在点击Cancel后还会提示:用户退出了保存对话框(无语,不让用户保存修改,最后还说是用户自愿的),这个挫设计导致用户当前所做的所有修改都无法保存。
解决方法可以根据错误描述中“enabled the option Prevent saving changes ”找到:
禁止这个警告显示,在Management Studio设计器中,点击菜单Tools > Options > Designers > Table and Database Designers >去掉选项Prevent saving changes that require the table to be re-created之前的复选框
......
在SQL Server 2008中引入了hierarchyid来处理树状结构。下面简单就以AdventureWorks(无hierarchyid)和AdventureWorks2008(有hierarchyid)里的HumanResources.Employee为例,来说明一下在新的hierarchyid中如何进行flat化的dimension抽取。
AdventureWorks是微软为SQL Server提供的数据库虚拟案例。
AdventureWorks中所要的结果集代码如下:
select L4.NationalIDNumber, L4.Title, L3.NationalIDNumber, L3.Title, L2.NationalIDNumber, L2.Title, L1.NationalIDNumber, L1.Title, L0.NationalIDNumber, L0.Title
from HumanResources.Employee L4, HumanResources.Employee L3, HumanResources.Employee L2, HumanResources.Employee L1, HumanResources.Employee L0
where L4.ManagerID = L3.EmployeeID and L3.ManagerID = L2.EmployeeID and L2.ManagerID = L1.EmployeeID and L1.ManagerID = L0.EmployeeID
AdventureWorks2008中的代码如下:
select L4.NationalIDNumber, L4.JobTitle, L3.NationalIDNumber, L3.JobTitle, L2.NationalIDNumber, L2.JobTitle, L1.NationalIDNumber, L1.JobTitle, L0.NationalIDNumber, L0.JobTitle
from HumanResources.Employee L ......
1。企业管理器
打开你建有外键的表--右击表--设计表--在上方点开’管理约束‘--将级连删除和级连更新的沟打上就可以了
2。查询分析器
alter table sc
add
constraint forei foreign key(sno)
REFERENCES student(sno)
ON DELETE CASCADE
ON UPDATE CASCADE
ON DELETE {CASCADE | NO ACTION}
指定当表中被更改的行具有引用关系,并且该行所引用的行从父表中删除时,要对被更改行采取的操作。默认设置为 NO ACTION。
如果指定 CASCADE,则从父表中删除被引用行时,也将从引用表中删除引用行。如果指定 NO ACTION,SQL Server 将产生一个错 ......
本文来自:http://hi.baidu.com/darkroot/blog/item/7b74be2cf06d76e78b139903.html
declare @tbName nvarchar(500)
declare @ct int
declare @csql nvarchar(500)
declare #tb cursor for SELECT OBJECT_NAME (id) As TableName from sysobjects WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0
open #tb
fetch next from #tb into @tbName
while @@fetch_status=0
begin
set @csql = N'Select @ct= Count(*) from ' + @tbName
Exec dbo.sp_executesql @csql,N'@ct int output',@ct output
Print @tbName + '---' + Cast(@ct As nvarchar(500))
fetch next from #tb into @tbName
end
close ......