1 --創(chuàng)建表
2 if exists(select * from sysobjects where name='user' and type='U') drop table [user] ;
3 create table [user](
4 id int identity(1,1) , --自增字段
5 name varchar(50) ,
6 pwd varchar(50) ,
7 constraint pk_user_id primary key(id) --主鍵
8 --constraint pk_user_id primary key(id,[name])
9 );
10
11 -- 變量的聲明,sql里面聲明變量時(shí)必須在變量前加@符號(hào)
12 DECLARE @I INT
13
14 -- 變量的賦值,變量賦值時(shí)變量前必須加set
15 SET @I = 30
16
17 -- 聲明多個(gè)變量
18 DECLARE @s varchar(10),@a INT
19
20 -- Sql 里if語(yǔ)句
21 IF 條件 BEGIN
22 執(zhí)行語(yǔ)句
23 END
24 ELSE BEGIN
25 執(zhí)行語(yǔ)句
26 END
27
28 DECLARE @d INT
29 set @d = 1
30
31 IF @d = 1 BEGIN
32
33 -- 打印
34 PRINT '正確'
35 END
36 ELSE BEGIN
37 PRINT '錯(cuò)誤'
38 END
39
40
41 -- Sql 里的多條件選擇語(yǔ)句.
42 DECLARE @iRet INT, @PKDisp VARCHAR(20)
43 SET @iRet = 1
44 Select @iRet =
45 CASE
46 WHEN @PKDisp = '一' THEN 1
47 WHEN @PKDisp = '二' THEN 2
48 WHEN @PKDisp = '三' THEN 3
49 WHEN @PKDisp = '四' THEN 4
50 WHEN @PKDisp = '五' THEN 5
51 ELSE 100
52 END
53
54 -- 循環(huán)語(yǔ)句
55 WHILE 條件 BEGIN
56 執(zhí)行語(yǔ)句
57 END
58
59 DECLARE @i INT
60 SET @i = 1
61 WHILE @i<1000000 BEGIN
62 set @i=@i+1
63 END
64 -- 打印
65 PRINT @i
66
67
68 -- TRUNCATE 刪除表中的所有行,而不記錄單個(gè)行刪除操作,不能帶條件
69
70 /*
71 TRUNCATE TABLE 在功能上與不帶 Where 子句的 Delete 語(yǔ)句相同:二者均刪除表中的全部行
72
73 。但 TRUNCATE TABLE 比 Delete 速度快,且使用的系統(tǒng)和事務(wù)日志資源少。
74 Delete 語(yǔ)句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。TRUNCATE TABLE 通過(guò)
75
76 釋放存儲(chǔ)表數(shù)據(jù)所用的數(shù)據(jù)頁(yè)來(lái)刪除數(shù)據(jù),并且只在事務(wù)日志中記錄頁(yè)的釋放。
77 TRUNCATE TABLE 刪除表中的所有行,但表結(jié)構(gòu)及其列、約束、索引等保持不變。新行標(biāo)識(shí)所用
78
79 的計(jì)數(shù)值重置為該列的種子。如果想保留標(biāo)識(shí)計(jì)數(shù)值,請(qǐng)改用 Delete。如果要?jiǎng)h除表定義及其數(shù)據(jù),請(qǐng)
80
81 使用 Drop TABLE 語(yǔ)句。
82 對(duì)于由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應(yīng)使用不帶 Where 子句的
83
84 Delete 語(yǔ)句。由于 TRUNCATE TABLE 不記錄在日志中,所以它不能激活觸發(fā)器。
85 TRUNCATE TABLE 不能用于參與了索引視圖的表。
86 示例
87 下例刪除 authors 表中的所有數(shù)據(jù)。*/
88
89 TRUNCATE TABLE authors
90
91
92 -- Select INTO 從一個(gè)查詢的計(jì)算結(jié)果中創(chuàng)建一個(gè)新表。 數(shù)據(jù)并不返回給客戶端,這一點(diǎn)和普通的
93 -- Select 不同。 新表的字段具有和 Select 的輸出字段相關(guān)聯(lián)(相同)的名字和數(shù)據(jù)類型。
94
95 select * into NewTable
96 from Uname
97
98
99 -- Insert INTO Select
100 -- 表ABC必須存在
101 -- 把表Uname里面的字段Username復(fù)制到表ABC
102 Insert INTO ABC Select Username FROM Uname
103
104 -- 創(chuàng)建臨時(shí)表
105 Create TABLE #temp(
106 UID int identity(1, 1) PRIMARY KEY,
107 UserName varchar(16),
108 Pwd varchar(50),
109 Age smallint,
110 Sex varchar(6)
111 )
112 -- 打開(kāi)臨時(shí)表
113 Select * from #temp
114
115 -- 存儲(chǔ)過(guò)程
116 -- 要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程的數(shù)據(jù)庫(kù)
117 Use Test
118 -- 判斷要?jiǎng)?chuàng)建的存儲(chǔ)過(guò)程名是否存在
119 if Exists(Select name From sysobjects Where name='csp_AddInfo' And
120
121 type='P')
122 -- 刪除存儲(chǔ)過(guò)程
123 Drop Procedure dbo.csp_AddInfo
124 Go
125
126
127 -- 創(chuàng)建存儲(chǔ)過(guò)程
128 Create Proc dbo.csp_AddInfo
129 -- 存儲(chǔ)過(guò)程參數(shù)
130 @UserName varchar(16),
131 @Pwd varchar(50),
132 @Age smallint,
133 @Sex varchar(6)
134 AS
135 -- 存儲(chǔ)過(guò)程語(yǔ)句體
136 insert into Uname (UserName,Pwd,Age,Sex)
137 values (@UserName,@Pwd,@Age,@Sex)
138 RETURN
139 -- 執(zhí)行
140 GO
141
142 -- 執(zhí)行存儲(chǔ)過(guò)程
143 EXEC csp_AddInfo 'Junn.A','123456',20,'男';
144 修改自:http://blog.csdn.net/mx1029/archive/2007/07/06/1680910.aspx