T-SQL 高階程式設計(基本語法)
T-SQL 高階程式設計
/*-變數應用-*/ --以標記為字首 --以標記為字首 --區域性變數宣告 declare @ --區域性變數賦值:使用語句或語句 --set 賦值語句一般賦給變數指定的資料常量 set @ = --select 賦值語句一般用於從表中查詢資料,然後再賦給變數 --當用select賦值時,不進行篩選會將最後一條記錄賦給變數 select @ = from where
變數 | 含義 |
@@error | 最後一個T-SQL錯誤的錯誤號 |
@@identity | 最後一次插入的標識值 |
@@language | 當前使用的語言的名稱 |
@@max_connections | 可以建立的同時連線的最大數目 |
@@rowcount | 受上一個SQL語句影響的行數 |
@@servername | 本地伺服器的名稱 |
@@servicename | 該計算機上的SQL伺服器的名稱 |
@@timeticks | 當前計算上每刻度的微秒數 |
@@transcount | 當前連線開啟的事物數 |
@@version | SQL Sever的版本資訊 |
--提交事務 commit transaction end
/*-索引-*/--索引型別唯一索引:unique 聚集索引:clustered 非聚集索引:nonclusered
use 資料庫名
go
--查詢索引
if exists (select * from sysindexes where name = '索引名')
--刪除索引
drop index 表名.索引名
--建立索引
create nonclustered index 索引名
on 表名(索引列名)
where fillfactor = --大小為0-100之間的值
go
--查詢索引
select * from 表名 (index = 索引名) where 由索引列名組成的條件
/*-建立檢視-*/
use 資料庫名
go
--查詢檢視
if exists (select * from sysobjects where name = '檢視名')
--刪除檢視
drop view 檢視名
--建立檢視
create view 檢視名
as
--查詢語句
go
--使用檢視
select * from 檢視名
系統儲存過程 | 說明 |
sp_databases | 列出伺服器上所有的資料庫 |
sp_helpdb | 報告有關指定資料庫或所有資料庫的資訊 |
sp_renamedb 舊名,新名 | 更改資料庫的名稱 |
sp_tables | 返回當前環境下可查詢的物件的列表 |
sp_columns | 返回某個表列的資訊 |
sp_help | 檢視某個表的所有資訊 |
sp_helpconstraint 表名 | 檢視某個表的約束 |
sp_helpindex 表名 | 檢視某個表的索引 |
sp_stored_procedures | 列出當前環境中所有儲存過程 |
sp_password | 新增或修改登入賬戶的密碼 |
sp_helptext | 顯示預設值、未加密的儲存過程、使用者自定義的儲存過程、出發器或檢視的實際文字 |
xp_cmdshell 'Dos命令' | 完成DOS命名下的一些操作 |
--自定義儲存過程
--不帶參的儲存過程
use 資料庫名
go
--查詢儲存過程
if exists (select * from sysobjects where name = '儲存過程')
--刪除儲存過程
drop procedure 儲存過程名
go
--建立儲存過程
create procedure 儲存過程名
as
declare @變數名 資料型別
--SQL語句(一般用於查詢語句)
go
--呼叫儲存過程
exec 儲存過程名
--建立帶輸入引數的儲存過程
use 資料庫名
go
--查詢儲存過程
if exists (select * from sysobjects where name = '儲存過程')
--刪除儲存過程
drop procedure 儲存過程名
go
--建立儲存過程
create procedure 儲存過程名
@變數名1 資料型別 --輸入引數(當多個引數時用,隔開)
as
declare @變數名2 資料型別
--SQL語句(一般用於插入、修改、刪除語句)
go
--呼叫儲存過程
exec 儲存過程名 給變數名1賦值
--建立帶輸出引數的儲存過程
use 資料庫名
go
--查詢儲存過程
if exists (select * from sysobjects where name = '儲存過程')
--刪除儲存過程
drop procedure 儲存過程名
go
--建立儲存過程
create procedure 儲存過程名
@變數名1 資料型別 output,--output關鍵字,否則視為輸入引數
@變數名2 資料型別 --輸入引數(當多個引數時用,隔開)
as
declare @變數名3 資料型別
--SQL語句(一般用於查詢語句)
go
--呼叫儲存過程
declare @變數名4 資料型別 --定義變數,用於存放儲存過程變數名1的返回的結果
exec 儲存過程名 @變數名4 output,@變數名2 資料型別
/*-處理錯誤資訊-*/
use 資料庫名
go
--查詢儲存過程
if exists (select * from sysobjects where name = '儲存過程')
--刪除儲存過程
drop procedure 儲存過程名
go
--建立儲存過程
create procedure 儲存過程名
@變數名1 資料型別,
@變數名2 output
as
declare @變數名3 資料型別
--錯誤處理
msg_id:在sysmessages系統表中指定的使用者定義錯誤資訊
msg_str:使用者定義的特定資訊,最長為255個字元
serverity:與特定資訊相關聯,表示使用者定義的嚴重級別.使用者可以使用0~18級,19~25級
是sysadmin固定角色的成員預留的,並且需要指定with log選項,20~25級錯
誤被認為是致命的錯誤
state:表示錯誤的狀態,是1~127的值
raiserror('msg_id | msg_str',severity,state);
--SQL語句(一般用於查詢語句)
go
--呼叫儲存過程
declare @變數名4 資料型別 --定義變數,用於存放儲存過程d的返回的結果
exec 儲存過程名 @變數名4 output,@變數名2 資料型別