Sql Server 2008 資料庫設計與應用 筆記 (SQL Server 2008)

Sql Server 2008 資料庫設計與應用 筆記 (SQL Server 2008)

SQL Server 2008資料庫設計與應用

  • 作者:陳祥輝
  • 出版社:博碩
  • 出版日期:2010年01月18日
  • 語言:繁體中文 ISBN:9789862013007

集合

由於空值(Null)是一個很特殊的值,若是利用空值與其他字串連接在一起,
最後結果仍會是空值。例如以下範例

declare @mystr varchar(10) -- 未指定初始值,預設將為Null
set @mystr=@mystr+'abc'
select @mystr
go


區域變數 宣告與指派動作一次進行
declare @myintvariable  int=10,@todaydate date=getdate()
set @myintvariable=@myintvariable+8
SELECT @myintvariable
SELECT @todaydate
go

使用TABLE資料的區域變數
DECLARE @vEMP table(empno int primary key,
empname varchar(20) not null,
empgender varchar(2))

insert @vEMP
select 員工編號,姓名,姓別 from 員工 where 姓別='女'


--p11-12
declare @catname varchar(100),@prdname varchar(100)
set @catname=''
set @prdname=''
if (select COUNT(產品編號) from 產品資料
where 類別編號='1')>2
begin
select @catname=類別名稱 from 產品類別 --逐一回傳,結果就是最後一筆資料
select @prdname=@prdname+'['+ 產品名稱 +']'--會將回傳資料 串在一起
from 產品資料
where 類別編號=1
print '類別名稱:'+@catname
print '產品表列:'+@prdname
end
go

--P11-42

 

--P11-41
 
WHEN MATCHED THEN -- 兩者皆有的資料
WHEN NOT MATCHED BY TARGET THEN --目標資料表沒有,而來源有的資料
WHEN NOT MATCHED BY SOURCE THEN --目標資料表有,而來源沒有的資料

 

--P12-4 規則物件

ALTER TABLE 員工

ADD CHECK (性別 IN ('男','女')),

CHECK (出生日期>='1911/01/01' AND 出生日期<=GETDATE()),

CHECK (住家電話 IS NOT NULL OR 手機電話 IS NOT NULL)

--利用範圍建立規則
CREATE RULE RULE_PRICE
AS
@PRICE>=10 AND @PRICE<=50

--利用清單建立規則
CREATE RULE RULE_CATEGORYNAME_01
AS
@CATEGORYNAME IN ('茶類','果汁')

CREATE RULE RULE_CATEGORYNAME_02
AS
@CATEGORYNAME NOT IN ('酒類')

 


--繫結 規則物件至資料行
EXEC sp_bindrule Rule_Price,'產品資料.單價'

--解除與資料表資料行的繫結
EXEC sp_unbindrule '產品資料.單價'

 


--繫結 預設值 至資料行
EXEC sp_bindefault df_city '產品資料.倉儲地點'

--解除與資料表資料行的繫結
EXEC sp_unbindefault '產品資料.倉儲地點'


如有錯誤 歡迎指正