數據庫中存在兩張表:
1
--職工表
2
CREATE TABLE [dbo].[emp] (
3
[empid] [int] IDENTITY (1, 1) NOT NULL ,
4
[empname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
5
[comm] [int] NULL ,
6
[deptno] [int] NULL
7
) ON [PRIMARY]
8
9
--部門表
10
CREATE TABLE [dbo].[dept] (
11
[deptno] [int] IDENTITY (1, 1) NOT NULL ,
12
[deptname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
13
) ON [PRIMARY]

2

3

4

5

6

7

8

9

10

11

12

13

回答以下問題:
1. 取出emp表中comm最小的所有記錄。
1
select * from emp where comm=(select min(comm) from emp)

2. 顯示所有職工的empname以及其對應的deptname;如果emp表中的deptno在dept表中找不到,則deptname輸出為空。
1
select e.empname,d.deptname from emp e left join dept d on e.deptno=d.deptno

3. 把emp表中的所有comm設置為comm=comm.+100;如果comm為null,則comm=1。
1
update emp set comm=case
2
when comm is not NULL then comm+100
3
when comm is null then 1
4
end

2

3

4

4. 寫一個存儲過程,復制表emp中的所有記錄到emp表的末尾(其中empid自動增1),要有拋出異常的處理。