對於開發人員, 資料庫最重要的不外乎Table, Store procedure, View, Trigger這幾項, 接下來就針對這四項實作一次
- 有了資料庫, 就開始建立資料表, 不過Azure SQL的Table建立只能用script的方式
CREATE TABLE MyFirstTable
(
BookID INT,
Title VARCHAR(64),
Author VARCHAR(64)
)
GO
建立後insert三筆資料
INSERT INTO MyFirstTable VALUES (1,'Antic Hay','Aldous Huxley')
INSERT INTO MyFirstTable VALUES (2,'An Evil Cradling','Brian Keenan')
INSERT INTO MyFirstTable VALUES (3,'A Time to Kill','John Grisham')
- 執行會出現錯誤 'Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.', 也就是Azure SQL的Table一定要有一個clustered index.
- 那就補上index.
CREATE CLUSTERED INDEX IDX_ID
ON MyFirstTable
(
BookID
)
GO
- 重新執行Insert就沒問題了
- 那對於Non-Clustered有沒有什麼限制? 看來並沒有, 再把這兩個Non-Clustered移除
- 回到Azure Portal點選資料庫下方的'管理'
- 輸入使用者帳密進入Web管理介面
- 再資料表頁面可看到剛才建立的Table
- 點選'新增查詢'使用Web介面來執行看看
SELECT * FROM MyFirstTable
- 執行後可再下方看到結果
- 也是可看到查詢計畫
- 回到設計頁面, 接下來在瀏覽器內實作View, Store Procedure
- 點選'檢視表' -> '新增檢視表', 很快建立一個 BookTitleView
SELECT BookID, Title FROM MyFirstTable
- 點選'資料'可瀏覽結果
- 接著新建預存程序 sp_Author, 帶一個ID參數
SELECT * FROM MyFirstTable where BookID=@ID
- 點選'資料'後, 先給ID輸入值1, 再執行後就可看到結果
- 最後回SSMS檢視剛剛在瀏覽器建立的, 再加上一個Trigger
CREATE TRIGGER tg_LOG
ON MyFirstTable
AFTER INSERT
AS
PRINT 'Book Inserted'
GO
INSERT INTO MyFirstTable VALUES(4, 'Hello', 'World')
看來最基本的Table, View, Store Procedure, Trigger都沒問題, 對一般程式就夠用了