學習t-sql時記錄的筆記,記得並不全也不詳細
declare @age int
select @age = datediff(year,stuage,getdate()) from tbstudent where stuname = '孫悟空'
if(@age>=18)
begin --必須有begin..end
print n'已成年'
endelse
begin
print n'未成年'
end
declare @sum int
set @sum = 0
declare @i int
set @i = 1
while(@i <= 100)
begin
if(@i % 2 <> 0)
begin
set @sum = @sum + @i
endset @i = @i + 1
endprint @sum
分為標量函式、錶值函式(內聯錶值函式和多語句錶值函式)
-- 語法
create function 函式名
([引數列表]) 可以不寫引數,先寫變數名再寫型別
returns 返回值型別
asbegin
-- ······函式體語句
return 返回值
end
內聯錶值函式-- 語法
create function 函式名
([引數名])
returns table
asreturn (一條select語句)
多語句錶值函式
多語句錶值函式可以看作是標量函式和內聯錶值函式的結合體
-- 語法
create function 函式名([引數列表])
returns 表變數名 table
(表變數的字段定義)
asbegin
sqlreturn 這裡啥都不寫
end
儲存過程時儲存在伺服器上的一組t-sql語句的集合,用來完成乙個特定功能。
分為系統儲存過程(系統自帶)和自定義儲存過程
-- 語法
create procedure(或proc) 儲存過程名(up_)
[引數列表] --這裡的引數列表不能使用圓括號
begin
儲存過程**
end
事務時併發控制的單位,他是使用者定義的乙個操作,這些操作要麼都做要麼都不做,不可分割。
分為:sql server事務和ado.net事務
-- 語法
begin tran --開始乙個事務操作
commit tran --提交
rollback --回滾
c#中使用時,通常把事務的操作封裝到儲存過程中
-- 語法
create trigger 觸發器名字
on 表名
after(或for) 之後觸發 / instead of 之前觸發 [insert/delete/update]
as begin
-- ······
end
觸發器的觸發條件:insert,delete,update
create trigger tr_bank_insert
on bank
after insert
asbegin
print '往bank表中插入了記錄'
endcreate trigger tr_bank_delete
on bank
after delete
asbegin
declare @id int
declare @username nvarchar(8)
declare @usermoney int
select @id = id, @usermoney = usermoney, @username = username from deleted
insert into bankbak values(@id, @username, @usermoney)
endselect * from bank
select * from bankbak
delete from bank where id = 3
sql server的觸發器是表級觸發器,表上一次性的多次操作只觸發一次 T SQL 游標學習筆記
首先 在效能上,游標會吃更多的記憶體,減少可用的併發,占用寬頻,鎖定資源,當然還有更多的 量 從游標對資料庫的讀取方式來說,不難看出游標為什麼占用更多的資源,打個比方 當你從atm取錢的時候,是一次取1000效率更高呢,還是取10次100?游標變數支援兩種方式賦值,定義時賦值和先定義後賦值,定義游標...
儲存過程學習筆記三 T SQL基本知識
1.資料庫物件限定符 伺服器.資料庫.所有者.資料庫 物件 2.為區域性變數 為全域性變數 屬於系統定義的函式,不能對它們進行宣告。select 語句可用來對區域性變數進行賦值 select inteqid identity interrorcode error 3.常用的全域性變數 identit...
T Sql 學習 11 統計函式
統計函式 乙個工具能夠完成某個任務,並不能說明他就是這個任務的最好選擇 1,case 可以在統計的時候,有非常清晰的判斷和邏輯 2,效率 有可能有表的自連線,所以需要在效能和可讀性之間做乙個折中 3,sign函式 select sign 100 sign 100 sign 0 sign 0.2 fr...