--1.變量分爲局部變量和全局變量 --局部變量: --局部變量必須以標記@做爲前綴 ,如@age --局部變量的使用也是先聲明,再賦值 --全局變量: --全局變量必須以標記@ @做爲前綴,如@@version --全局變量由系統定義和維護,咱們只能讀取,不能修改全局變量的值 --2.局部變量 --1>聲明 declare @name varchar(8) declare @age int --2>賦值 set @name='jack' --賦值方式一 set @age=20 select @name=firstname from employees where employeeid=1 --賦值方式二 --3>使用 輸出 --convert(數據類型,表達式):將表達式轉成指定數據類型 print '姓名:'+@name+',年齡:'+convert(varchar,@age) --以消息形式輸出 select @name as '姓名'--以表格形式輸出 go --3.全局變量 --@@ERROR:最後一個T-SQL錯誤的錯誤號,若是爲0無錯 --@@IDENTITY:最後一次插入的標識值 --@@ROWCOUNT:受上一個SQL語句影響的行數 select * from employees select * from employees where employeeid=1 print '總共查詢到'+convert(varchar,@@rowcount) update employees set birthdate='2011-1-1' where employeeid=1 print '錯誤代號'+convert(varchar,@@error) go --4.if --格式: if <條件> begin 語句序列 end -- else begin 語句序列 end --:說明:當語句序列只有一句時,begin end可省略 --根據產品的名稱,輸出對應價格等級 declare @price money declare @pname varchar(10) set @pname='Chai' select @price=unitprice from products where productname=@pname if @price>50 print '貴' else if @price>30 print '通常' else print '便宜' go --5.case end --格式:CASE -- WHEN 條件1 THEN 結果1 -- WHEN 條件2 THEN 結果2 -- …… -- ELSE 其餘結果 --END declare @week int declare @weekStr varchar(6) set @week=2--星期一 set @weekStr= case when @week=1 then '星期一' when @week=2 then '星期二' when @week=3 then '星期三' else '星期天' end print @weekStr go select productid,productname,unitprice, case when unitprice>50 then '貴' when unitprice>30 then '通常' else '便宜' end as '等級' from products go --6.while循環 --格式:WHILE <條件> -- BEGIN -- 語句1 -- 語句2 -- …… -- BREAK -- END declare @i int set @i=1 while @i<=10 begin print @i if @i=5 break; set @i=@i+1 end go --爲了本次考試更好,進行必定的提分, --確保每人的總分都達到200分以上,提分規則很簡單, --先給每人加2分,看是否都經過,若是沒有所有經過, --每人再加2分,再看是否達到200分,如此反覆提分,直到全部人都經過爲止。 declare @i int --記錄加的次數 declare @price money set @i=0 while begin select @price=min(unitprice) from products if @price>=30 break update products set unitprice=unitprice+2 set @i=@i+1 end go declare @i int --記錄加的次數 set @i=0 while 1=1 begin if not exists(select * from products where unitprice<30) break update products set unitprice=unitprice+2 set @i=@i+1 end go