MS SQLSERVER 只能得到存储过程的创建语句,方法如下:
sp_helptext procedureName
但是往往我们需要得到表的创建语句,比如说在数据库升级的时候判断某个表是否已经改变,或者已经有一个表存在,但不知道它的创建语句是什么,字段有没有约束,有没有主键,创建了哪些索引等等.下面我给出一个存储过程,供读者参考.
该存储过程可以得到你想得到的所有的表的创建语句,包括和表有关的索引的创建语句.
SQLSERVER2000 下的代码
1
create procedure SP_GET_TABLE_INFO
2
@ObjName varchar(128) /* The table to generate sql script */
3
as
4![](/Images/OutliningIndicators/None.gif)
5
declare @Script varchar(255)
6
declare @ColName varchar(30)
7
declare @ColID TinyInt
8
declare @UserType smallint
9
declare @TypeName sysname
10
declare @Length TinyInt
11
declare @Prec TinyInt
12
declare @Scale TinyInt
13
declare @Status TinyInt
14
declare @cDefault int
15
declare @DefaultID TinyInt
16
declare @Const_Key varchar(255)
17
declare @IndID SmallInt
18
declare @IndStatus Int
19
declare @Index_Key varchar(255)
20
declare @DBName varchar(30)
21
declare @strPri_Key varchar (255)
22![](/Images/OutliningIndicators/None.gif)
23
/*
24
** Check to see the the table exists and initialize @objid.
25
*/
26
if not Exists(Select name from sysobjects where name = @ObjName)
27
begin
28
select @DBName = db_name()
29
raiserror(15009,-1,-1,@ObjName,@DBName)
30
return (1)
31
end
32![](/Images/OutliningIndicators/None.gif)
33
create table #spscript
34
(
35
id int IDENTITY not null,
36
Script Varchar(255) NOT NULL,
37
LastLine tinyint
38
)
39![](/Images/OutliningIndicators/None.gif)
40
declare Cursor_Column INSENSITIVE CURSOR
41
for Select a.name,a.ColID,a.usertype,b.name,a.length,a.prec,a.scale,a.Status, a.cDefault,
42
case a.cdefault when 0 then ' ' else (select c.Text from syscomments c where a.cdefault = c.id) end const_key
43
from syscolumns a, systypes b where object_name(a.id) = @ObjName
44
and a.usertype = b.usertype order by a.ColID
45![](/Images/OutliningIndicators/None.gif)
46
set nocount on
47
Select @Script = 'Create table ' + @ObjName + '('
48
Insert into #spscript values(@Script,0)
49![](/Images/OutliningIndicators/None.gif)
50
/* Get column information */
51
open Cursor_Column
52![](/Images/OutliningIndicators/None.gif)
53
fetch next from Cursor_Column into @ColName,@ColID,@UserType,@TypeName,@Length,@Prec,@Scale,
54
@Status,@cDefault,@Const_Key
55![](/Images/OutliningIndicators/None.gif)
56
Select @Script = ''
57
while (@@FETCH_STATUS <> -1)
58
begin
59
if (@@FETCH_STATUS <> -2)
60
begin
61
Select @Script = @ColName + ' ' + @TypeName
62
if @UserType in (1,2,3,4)
63
Select @Script = @Script + '(' + Convert(char(3),@Length) + ') '
64
else if @UserType in (24)
65
Select @Script = @Script + '(' + Convert(char(3),@Prec) + ','
66
+ Convert(char(3),@Scale) + ') '
67
else
68
Select @Script = @Script + ' '
69
if ( @Status & 0x80 ) > 0
70
Select @Script = @Script + ' IDENTITY(1,1) '
71![](/Images/OutliningIndicators/None.gif)
72
if ( @Status & 0x08 ) > 0
73
Select @Script = @Script + ' NULL '
74
else
75
Select @Script = @Script + ' NOT NULL '
76
if @cDefault > 0
77
Select @Script = @Script + ' DEFAULT ' + @Const_Key
78
end
79
fetch next from Cursor_Column into @ColName,@ColID,@UserType,@TypeName,@Length,@Prec,@Scale,
80
@Status,@cDefault,@Const_Key
81
if @@FETCH_STATUS = 0
82
begin
83
Select @Script = @Script + ','
84
Insert into #spscript values(@Script,0)
85
end
86
else
87
begin
88
Insert into #spscript values(@Script,1)
89
Insert into #spscript values(')',0)
90
end
91
end
92
Close Cursor_Column
93
Deallocate Cursor_Column
94![](/Images/OutliningIndicators/None.gif)
95
/* Get index information */
96
Declare Cursor_Index INSENSITIVE CURSOR
97
for Select name,IndID,status from sysindexes where object_name(id)=@ObjName
98
and IndID > 0 and IndID<>255 order by IndID /*增加了对InDid为255的判断*/
99
Open Cursor_Index
100
Fetch Next from Cursor_Index into @ColName, @IndID, @IndStatus
101
while (@@FETCH_STATUS <> -1)
102
begin
103
if @@FETCH_STATUS <> -2
104
begin
105![](/Images/OutliningIndicators/None.gif)
106
declare @i TinyInt
107
declare @thiskey varchar(50)
108
declare @IndDesc varchar(68) /* string to build up index desc in */
109![](/Images/OutliningIndicators/None.gif)
110
Select @i = 1
111
while (@i <= 16)
112
begin
113
select @thiskey = index_col(@ObjName, @IndID, @i)
114
if @thiskey is null
115
break
116![](/Images/OutliningIndicators/None.gif)
117
if @i = 1
118
select @Index_Key = index_col(@ObjName, @IndID, @i)
119
else
120
select @Index_Key = @Index_Key + ', ' + index_col(@ObjName, @IndID, @i)
121
select @i = @i + 1
122
end
123
if (@IndStatus & 0x02) > 0
124
Select @Script = 'Create unique '
125
else
126
Select @Script = 'Create '
127
if @IndID = 1
128
select @Script = @Script + ' clustered '
129![](/Images/OutliningIndicators/None.gif)
130![](/Images/OutliningIndicators/None.gif)
131
if (@IndStatus & 0x800) > 0
132
select @strPri_Key = ' PRIMARY KEY (' + @Index_Key + ')'
133
else
134
select @strPri_Key = ''
135
136
if @IndID > 1
137
select @Script = @Script + ' nonclustered '
138
Select @Script = @Script + ' index ' + @ColName + ' ON '+ @ObjName
139
+ '(' + @Index_Key + ')'
140
Select @IndDesc = ''
141
/*
142
** See if the index is ignore_dupkey (0x01).
143
*/
144
if @IndStatus & 0x01 = 0x01
145
Select @IndDesc = @IndDesc + ' IGNORE_DUP_KEY' + ','
146
/*
147
** See if the index is ignore_dup_row (0x04).
148
*/
149
/* if @IndStatus & 0x04 = 0x04 */
150
/* Select @IndDesc = @IndDesc + ' IGNORE_DUP_ROW' + ',' */ /* 2000 不在支持*/
151
/*
152
** See if the index is allow_dup_row (0x40).
153
*/
154
if @IndStatus & 0x40 = 0x40
155
Select @IndDesc = @IndDesc + ' ALLOW_DUP_ROW' + ','
156
if @IndDesc <> ''
157
begin
158
Select @IndDesc = SubString( @IndDesc, 1, DataLength(@IndDesc) - 1 )
159
Select @Script = @Script + ' WITH ' + @IndDesc
160
end
161
/*
162
** Add the location of the data.
163
*/
164
end
165
if (@strPri_Key = '')
166
Insert into #spscript values(@Script,0)
167
else
168
update #spscript set Script = Script + @strPri_Key where LastLine = 1
169
170
Fetch Next from Cursor_Index into @ColName, @IndID, @IndStatus
171
end
172
Close Cursor_Index
173
Deallocate Cursor_Index
174![](/Images/OutliningIndicators/None.gif)
175
Select Script from #spscript
176![](/Images/OutliningIndicators/None.gif)
177
set nocount off
178![](/Images/OutliningIndicators/None.gif)
179
return (0)
180![](/Images/OutliningIndicators/None.gif)
181![](/Images/OutliningIndicators/None.gif)
182
SQLSERVER6.5下的代码
183![](/Images/OutliningIndicators/None.gif)
184
create procedure SP_GET_TABLE_INFO
185
@ObjName varchar(128) /* The table to generate sql script */
186
as
187![](/Images/OutliningIndicators/None.gif)
188
declare @Script varchar(255)
189
declare @ColName varchar(30)
190
declare @ColID TinyInt
191
declare @UserType smallint
192
declare @TypeName sysname
193
declare @Length TinyInt
194
declare @Prec TinyInt
195
declare @Scale TinyInt
196
declare @Status TinyInt
197
declare @cDefault int
198
declare @DefaultID TinyInt
199
declare @Const_Key varchar(255)
200
declare @IndID SmallInt
201
declare @IndStatus SmallInt
202
declare @Index_Key varchar(255)
203
declare @Segment SmallInt
204
declare @DBName varchar(30)
205
declare @strPri_Key varchar (255)
206![](/Images/OutliningIndicators/None.gif)
207
/*
208
** Check to see the the table exists and initialize @objid.
209
*/
210
if not Exists(Select name from sysobjects where name = @ObjName)
211
begin
212
select @DBName = db_name()
213
raiserror(15009,-1,-1,@ObjName,@DBName)
214
return (1)
215
end
216![](/Images/OutliningIndicators/None.gif)
217
create table #spscript
218
(
219
id int IDENTITY not null,
220
Script Varchar(255) NOT NULL,
221
LastLine tinyint
222
)
223![](/Images/OutliningIndicators/None.gif)
224
declare Cursor_Column INSENSITIVE CURSOR
225
for Select a.name,a.ColID,a.usertype,b.name,a.length,a.prec,a.scale,a.Status, a.cDefault,
226
case a.cdefault when 0 then ' ' else (select case c.text when "(' ')" then "('')" else c.text end
227
from syscomments c where a.cdefault = c.id) end const_key
228
from syscolumns a, systypes b where object_name(a.id) = @ObjName
229
and a.usertype = b.usertype order by a.ColID
230![](/Images/OutliningIndicators/None.gif)
231
set nocount on
232
Select @Script = 'Create table ' + @ObjName + '('
233
Insert into #spscript values(@Script,0)
234![](/Images/OutliningIndicators/None.gif)
235
/* Get column information */
236
open Cursor_Column
237![](/Images/OutliningIndicators/None.gif)
238
fetch next from Cursor_Column into @ColName,@ColID,@UserType,@TypeName,@Length,@Prec,@Scale,
239
@Status,@cDefault,@Const_Key
240![](/Images/OutliningIndicators/None.gif)
241
Select @Script = ''
242
while (@@FETCH_STATUS <> -1)
243
begin
244
if (@@FETCH_STATUS <> -2)
245
begin
246
Select @Script = @ColName + ' ' + @TypeName
247
if @UserType in (1,2,3,4)
248
Select @Script = @Script + '(' + Convert(char(3),@Length) + ') '
249
else if @UserType in (24)
250
Select @Script = @Script + '(' + Convert(char(3),@Prec) + ','
251
+ Convert(char(3),@Scale) + ') '
252
else
253
Select @Script = @Script + ' '
254
if ( @Status & 0x80 ) > 0
255
Select @Script = @Script + ' IDENTITY(1,1) '
256![](/Images/OutliningIndicators/None.gif)
257
if ( @Status & 0x08 ) > 0
258
Select @Script = @Script + ' NULL '
259
else
260
Select @Script = @Script + ' NOT NULL '
261
if @cDefault > 0
262
Select @Script = @Script + ' DEFAULT ' + @Const_Key
263
end
264
fetch next from Cursor_Column into @ColName,@ColID,@UserType,@TypeName,@Length,@Prec,@Scale,
265
@Status,@cDefault,@Const_Key
266
if @@FETCH_STATUS = 0
267
begin
268
Select @Script = @Script + ','
269
Insert into #spscript values(@Script,0)
270
end
271
else
272
begin
273
Insert into #spscript values(@Script,1)
274
Insert into #spscript values(')',0)
275
end
276
end
277
Close Cursor_Column
278
Deallocate Cursor_Column
279![](/Images/OutliningIndicators/None.gif)
280
/* Get index information */
281
Declare Cursor_Index INSENSITIVE CURSOR
282
for Select name,IndID,status,Segment from sysindexes where object_name(id)=@ObjName
283
and IndID > 0 and IndID<>255 order by IndID
284
Open Cursor_Index
285
Fetch Next from Cursor_Index into @ColName, @IndID, @IndStatus, @Segment
286
while (@@FETCH_STATUS <> -1)
287
begin
288
if @@FETCH_STATUS <> -2
289
begin
290![](/Images/OutliningIndicators/None.gif)
291
declare @i TinyInt
292
declare @thiskey varchar(50)
293
declare @IndDesc varchar(68) /* string to build up index desc in */
294![](/Images/OutliningIndicators/None.gif)
295
Select @i = 1
296
while (@i <= 16)
297
begin
298
select @thiskey = index_col(@ObjName, @IndID, @i)
299
if @thiskey is null
300
break
301![](/Images/OutliningIndicators/None.gif)
302
if @i = 1
303
select @Index_Key = index_col(@ObjName, @IndID, @i)
304
else
305
select @Index_Key = @Index_Key + ', ' + index_col(@ObjName, @IndID, @i)
306
select @i = @i + 1
307
end
308
if (@IndStatus & 0x02) > 0
309
Select @Script = 'Create unique '
310
else
311
Select @Script = 'Create '
312
if @IndID = 1
313
select @Script = @Script + ' clustered '
314![](/Images/OutliningIndicators/None.gif)
315![](/Images/OutliningIndicators/None.gif)
316
if (@IndStatus & 0x800) > 0
317
select @strPri_Key = ' PRIMARY KEY (' + @Index_Key + ')'
318
else
319
select @strPri_Key = ''
320
321
if @IndID > 1
322
select @Script = @Script + ' nonclustered '
323
Select @Script = @Script + ' index ' + @ColName + ' ON '+ @ObjName
324
+ '(' + @Index_Key + ')'
325
Select @IndDesc = ''
326
/*
327
** See if the index is ignore_dupkey (0x01).
328
*/
329
if @IndStatus & 0x01 = 0x01
330
Select @IndDesc = @IndDesc + ' IGNORE_DUP_KEY' + ','
331
/*
332
** See if the index is ignore_dup_row (0x04).
333
*/
334
if @IndStatus & 0x04 = 0x04
335
Select @IndDesc = @IndDesc + ' IGNORE_DUP_ROW' + ','
336
/*
337
** See if the index is allow_dup_row (0x40).
338
*/
339
if @IndStatus & 0x40 = 0x40
340
Select @IndDesc = @IndDesc + ' ALLOW_DUP_ROW' + ','
341
if @IndDesc <> ''
342
begin
343
Select @IndDesc = SubString( @IndDesc, 1, DataLength(@IndDesc) - 1 )
344
Select @Script = @Script + ' WITH ' + @IndDesc
345
end
346
/*
347
** Add the location of the data.
348
*/
349
if @Segment <> 1
350
select @Script = @Script + ' ON ' + name
351
from syssegments
352
where segment = @Segment
353
end
354
if (@strPri_Key = '')
355
Insert into #spscript values(@Script,0)
356
else
357
update #spscript set Script = Script + @strPri_Key where LastLine = 1
358
359
Fetch Next from Cursor_Index into @ColName, @IndID, @IndStatus, @Segment
360
end
361
Close Cursor_Index
362
Deallocate Cursor_Index
363![](/Images/OutliningIndicators/None.gif)
364
Select Script from #spscript order by id
365![](/Images/OutliningIndicators/None.gif)
366
set nocount off
367![](/Images/OutliningIndicators/None.gif)
368
return (0)
369![](/Images/OutliningIndicators/None.gif)
370![](/Images/OutliningIndicators/None.gif)
371![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/None.gif)
63
![](/Images/OutliningIndicators/None.gif)
64
![](/Images/OutliningIndicators/None.gif)
65
![](/Images/OutliningIndicators/None.gif)
66
![](/Images/OutliningIndicators/None.gif)
67
![](/Images/OutliningIndicators/None.gif)
68
![](/Images/OutliningIndicators/None.gif)
69
![](/Images/OutliningIndicators/None.gif)
70
![](/Images/OutliningIndicators/None.gif)
71
![](/Images/OutliningIndicators/None.gif)
72
![](/Images/OutliningIndicators/None.gif)
73
![](/Images/OutliningIndicators/None.gif)
74
![](/Images/OutliningIndicators/None.gif)
75
![](/Images/OutliningIndicators/None.gif)
76
![](/Images/OutliningIndicators/None.gif)
77
![](/Images/OutliningIndicators/None.gif)
78
![](/Images/OutliningIndicators/None.gif)
79
![](/Images/OutliningIndicators/None.gif)
80
![](/Images/OutliningIndicators/None.gif)
81
![](/Images/OutliningIndicators/None.gif)
82
![](/Images/OutliningIndicators/None.gif)
83
![](/Images/OutliningIndicators/None.gif)
84
![](/Images/OutliningIndicators/None.gif)
85
![](/Images/OutliningIndicators/None.gif)
86
![](/Images/OutliningIndicators/None.gif)
87
![](/Images/OutliningIndicators/None.gif)
88
![](/Images/OutliningIndicators/None.gif)
89
![](/Images/OutliningIndicators/None.gif)
90
![](/Images/OutliningIndicators/None.gif)
91
![](/Images/OutliningIndicators/None.gif)
92
![](/Images/OutliningIndicators/None.gif)
93
![](/Images/OutliningIndicators/None.gif)
94
![](/Images/OutliningIndicators/None.gif)
95
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
96
![](/Images/OutliningIndicators/None.gif)
97
![](/Images/OutliningIndicators/None.gif)
98
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
99
![](/Images/OutliningIndicators/None.gif)
100
![](/Images/OutliningIndicators/None.gif)
101
![](/Images/OutliningIndicators/None.gif)
102
![](/Images/OutliningIndicators/None.gif)
103
![](/Images/OutliningIndicators/None.gif)
104
![](/Images/OutliningIndicators/None.gif)
105
![](/Images/OutliningIndicators/None.gif)
106
![](/Images/OutliningIndicators/None.gif)
107
![](/Images/OutliningIndicators/None.gif)
108
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
109
![](/Images/OutliningIndicators/None.gif)
110
![](/Images/OutliningIndicators/None.gif)
111
![](/Images/OutliningIndicators/None.gif)
112
![](/Images/OutliningIndicators/None.gif)
113
![](/Images/OutliningIndicators/None.gif)
114
![](/Images/OutliningIndicators/None.gif)
115
![](/Images/OutliningIndicators/None.gif)
116
![](/Images/OutliningIndicators/None.gif)
117
![](/Images/OutliningIndicators/None.gif)
118
![](/Images/OutliningIndicators/None.gif)
119
![](/Images/OutliningIndicators/None.gif)
120
![](/Images/OutliningIndicators/None.gif)
121
![](/Images/OutliningIndicators/None.gif)
122
![](/Images/OutliningIndicators/None.gif)
123
![](/Images/OutliningIndicators/None.gif)
124
![](/Images/OutliningIndicators/None.gif)
125
![](/Images/OutliningIndicators/None.gif)
126
![](/Images/OutliningIndicators/None.gif)
127
![](/Images/OutliningIndicators/None.gif)
128
![](/Images/OutliningIndicators/None.gif)
129
![](/Images/OutliningIndicators/None.gif)
130
![](/Images/OutliningIndicators/None.gif)
131
![](/Images/OutliningIndicators/None.gif)
132
![](/Images/OutliningIndicators/None.gif)
133
![](/Images/OutliningIndicators/None.gif)
134
![](/Images/OutliningIndicators/None.gif)
135
![](/Images/OutliningIndicators/None.gif)
136
![](/Images/OutliningIndicators/None.gif)
137
![](/Images/OutliningIndicators/None.gif)
138
![](/Images/OutliningIndicators/None.gif)
139
![](/Images/OutliningIndicators/None.gif)
140
![](/Images/OutliningIndicators/None.gif)
141
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
144
![](/Images/OutliningIndicators/None.gif)
145
![](/Images/OutliningIndicators/None.gif)
146
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
149
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
150
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
151
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
154
![](/Images/OutliningIndicators/None.gif)
155
![](/Images/OutliningIndicators/None.gif)
156
![](/Images/OutliningIndicators/None.gif)
157
![](/Images/OutliningIndicators/None.gif)
158
![](/Images/OutliningIndicators/None.gif)
159
![](/Images/OutliningIndicators/None.gif)
160
![](/Images/OutliningIndicators/None.gif)
161
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
164
![](/Images/OutliningIndicators/None.gif)
165
![](/Images/OutliningIndicators/None.gif)
166
![](/Images/OutliningIndicators/None.gif)
167
![](/Images/OutliningIndicators/None.gif)
168
![](/Images/OutliningIndicators/None.gif)
169
![](/Images/OutliningIndicators/None.gif)
170
![](/Images/OutliningIndicators/None.gif)
171
![](/Images/OutliningIndicators/None.gif)
172
![](/Images/OutliningIndicators/None.gif)
173
![](/Images/OutliningIndicators/None.gif)
174
![](/Images/OutliningIndicators/None.gif)
175
![](/Images/OutliningIndicators/None.gif)
176
![](/Images/OutliningIndicators/None.gif)
177
![](/Images/OutliningIndicators/None.gif)
178
![](/Images/OutliningIndicators/None.gif)
179
![](/Images/OutliningIndicators/None.gif)
180
![](/Images/OutliningIndicators/None.gif)
181
![](/Images/OutliningIndicators/None.gif)
182
![](/Images/OutliningIndicators/None.gif)
183
![](/Images/OutliningIndicators/None.gif)
184
![](/Images/OutliningIndicators/None.gif)
185
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
186
![](/Images/OutliningIndicators/None.gif)
187
![](/Images/OutliningIndicators/None.gif)
188
![](/Images/OutliningIndicators/None.gif)
189
![](/Images/OutliningIndicators/None.gif)
190
![](/Images/OutliningIndicators/None.gif)
191
![](/Images/OutliningIndicators/None.gif)
192
![](/Images/OutliningIndicators/None.gif)
193
![](/Images/OutliningIndicators/None.gif)
194
![](/Images/OutliningIndicators/None.gif)
195
![](/Images/OutliningIndicators/None.gif)
196
![](/Images/OutliningIndicators/None.gif)
197
![](/Images/OutliningIndicators/None.gif)
198
![](/Images/OutliningIndicators/None.gif)
199
![](/Images/OutliningIndicators/None.gif)
200
![](/Images/OutliningIndicators/None.gif)
201
![](/Images/OutliningIndicators/None.gif)
202
![](/Images/OutliningIndicators/None.gif)
203
![](/Images/OutliningIndicators/None.gif)
204
![](/Images/OutliningIndicators/None.gif)
205
![](/Images/OutliningIndicators/None.gif)
206
![](/Images/OutliningIndicators/None.gif)
207
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
210
![](/Images/OutliningIndicators/None.gif)
211
![](/Images/OutliningIndicators/None.gif)
212
![](/Images/OutliningIndicators/None.gif)
213
![](/Images/OutliningIndicators/None.gif)
214
![](/Images/OutliningIndicators/None.gif)
215
![](/Images/OutliningIndicators/None.gif)
216
![](/Images/OutliningIndicators/None.gif)
217
![](/Images/OutliningIndicators/None.gif)
218
![](/Images/OutliningIndicators/None.gif)
219
![](/Images/OutliningIndicators/None.gif)
220
![](/Images/OutliningIndicators/None.gif)
221
![](/Images/OutliningIndicators/None.gif)
222
![](/Images/OutliningIndicators/None.gif)
223
![](/Images/OutliningIndicators/None.gif)
224
![](/Images/OutliningIndicators/None.gif)
225
![](/Images/OutliningIndicators/None.gif)
226
![](/Images/OutliningIndicators/None.gif)
227
![](/Images/OutliningIndicators/None.gif)
228
![](/Images/OutliningIndicators/None.gif)
229
![](/Images/OutliningIndicators/None.gif)
230
![](/Images/OutliningIndicators/None.gif)
231
![](/Images/OutliningIndicators/None.gif)
232
![](/Images/OutliningIndicators/None.gif)
233
![](/Images/OutliningIndicators/None.gif)
234
![](/Images/OutliningIndicators/None.gif)
235
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
236
![](/Images/OutliningIndicators/None.gif)
237
![](/Images/OutliningIndicators/None.gif)
238
![](/Images/OutliningIndicators/None.gif)
239
![](/Images/OutliningIndicators/None.gif)
240
![](/Images/OutliningIndicators/None.gif)
241
![](/Images/OutliningIndicators/None.gif)
242
![](/Images/OutliningIndicators/None.gif)
243
![](/Images/OutliningIndicators/None.gif)
244
![](/Images/OutliningIndicators/None.gif)
245
![](/Images/OutliningIndicators/None.gif)
246
![](/Images/OutliningIndicators/None.gif)
247
![](/Images/OutliningIndicators/None.gif)
248
![](/Images/OutliningIndicators/None.gif)
249
![](/Images/OutliningIndicators/None.gif)
250
![](/Images/OutliningIndicators/None.gif)
251
![](/Images/OutliningIndicators/None.gif)
252
![](/Images/OutliningIndicators/None.gif)
253
![](/Images/OutliningIndicators/None.gif)
254
![](/Images/OutliningIndicators/None.gif)
255
![](/Images/OutliningIndicators/None.gif)
256
![](/Images/OutliningIndicators/None.gif)
257
![](/Images/OutliningIndicators/None.gif)
258
![](/Images/OutliningIndicators/None.gif)
259
![](/Images/OutliningIndicators/None.gif)
260
![](/Images/OutliningIndicators/None.gif)
261
![](/Images/OutliningIndicators/None.gif)
262
![](/Images/OutliningIndicators/None.gif)
263
![](/Images/OutliningIndicators/None.gif)
264
![](/Images/OutliningIndicators/None.gif)
265
![](/Images/OutliningIndicators/None.gif)
266
![](/Images/OutliningIndicators/None.gif)
267
![](/Images/OutliningIndicators/None.gif)
268
![](/Images/OutliningIndicators/None.gif)
269
![](/Images/OutliningIndicators/None.gif)
270
![](/Images/OutliningIndicators/None.gif)
271
![](/Images/OutliningIndicators/None.gif)
272
![](/Images/OutliningIndicators/None.gif)
273
![](/Images/OutliningIndicators/None.gif)
274
![](/Images/OutliningIndicators/None.gif)
275
![](/Images/OutliningIndicators/None.gif)
276
![](/Images/OutliningIndicators/None.gif)
277
![](/Images/OutliningIndicators/None.gif)
278
![](/Images/OutliningIndicators/None.gif)
279
![](/Images/OutliningIndicators/None.gif)
280
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
281
![](/Images/OutliningIndicators/None.gif)
282
![](/Images/OutliningIndicators/None.gif)
283
![](/Images/OutliningIndicators/None.gif)
284
![](/Images/OutliningIndicators/None.gif)
285
![](/Images/OutliningIndicators/None.gif)
286
![](/Images/OutliningIndicators/None.gif)
287
![](/Images/OutliningIndicators/None.gif)
288
![](/Images/OutliningIndicators/None.gif)
289
![](/Images/OutliningIndicators/None.gif)
290
![](/Images/OutliningIndicators/None.gif)
291
![](/Images/OutliningIndicators/None.gif)
292
![](/Images/OutliningIndicators/None.gif)
293
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
294
![](/Images/OutliningIndicators/None.gif)
295
![](/Images/OutliningIndicators/None.gif)
296
![](/Images/OutliningIndicators/None.gif)
297
![](/Images/OutliningIndicators/None.gif)
298
![](/Images/OutliningIndicators/None.gif)
299
![](/Images/OutliningIndicators/None.gif)
300
![](/Images/OutliningIndicators/None.gif)
301
![](/Images/OutliningIndicators/None.gif)
302
![](/Images/OutliningIndicators/None.gif)
303
![](/Images/OutliningIndicators/None.gif)
304
![](/Images/OutliningIndicators/None.gif)
305
![](/Images/OutliningIndicators/None.gif)
306
![](/Images/OutliningIndicators/None.gif)
307
![](/Images/OutliningIndicators/None.gif)
308
![](/Images/OutliningIndicators/None.gif)
309
![](/Images/OutliningIndicators/None.gif)
310
![](/Images/OutliningIndicators/None.gif)
311
![](/Images/OutliningIndicators/None.gif)
312
![](/Images/OutliningIndicators/None.gif)
313
![](/Images/OutliningIndicators/None.gif)
314
![](/Images/OutliningIndicators/None.gif)
315
![](/Images/OutliningIndicators/None.gif)
316
![](/Images/OutliningIndicators/None.gif)
317
![](/Images/OutliningIndicators/None.gif)
318
![](/Images/OutliningIndicators/None.gif)
319
![](/Images/OutliningIndicators/None.gif)
320
![](/Images/OutliningIndicators/None.gif)
321
![](/Images/OutliningIndicators/None.gif)
322
![](/Images/OutliningIndicators/None.gif)
323
![](/Images/OutliningIndicators/None.gif)
324
![](/Images/OutliningIndicators/None.gif)
325
![](/Images/OutliningIndicators/None.gif)
326
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
327
![](/Images/OutliningIndicators/InBlock.gif)
328
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
329
![](/Images/OutliningIndicators/None.gif)
330
![](/Images/OutliningIndicators/None.gif)
331
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
332
![](/Images/OutliningIndicators/InBlock.gif)
333
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
334
![](/Images/OutliningIndicators/None.gif)
335
![](/Images/OutliningIndicators/None.gif)
336
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
337
![](/Images/OutliningIndicators/InBlock.gif)
338
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
339
![](/Images/OutliningIndicators/None.gif)
340
![](/Images/OutliningIndicators/None.gif)
341
![](/Images/OutliningIndicators/None.gif)
342
![](/Images/OutliningIndicators/None.gif)
343
![](/Images/OutliningIndicators/None.gif)
344
![](/Images/OutliningIndicators/None.gif)
345
![](/Images/OutliningIndicators/None.gif)
346
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
347
![](/Images/OutliningIndicators/InBlock.gif)
348
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
349
![](/Images/OutliningIndicators/None.gif)
350
![](/Images/OutliningIndicators/None.gif)
351
![](/Images/OutliningIndicators/None.gif)
352
![](/Images/OutliningIndicators/None.gif)
353
![](/Images/OutliningIndicators/None.gif)
354
![](/Images/OutliningIndicators/None.gif)
355
![](/Images/OutliningIndicators/None.gif)
356
![](/Images/OutliningIndicators/None.gif)
357
![](/Images/OutliningIndicators/None.gif)
358
![](/Images/OutliningIndicators/None.gif)
359
![](/Images/OutliningIndicators/None.gif)
360
![](/Images/OutliningIndicators/None.gif)
361
![](/Images/OutliningIndicators/None.gif)
362
![](/Images/OutliningIndicators/None.gif)
363
![](/Images/OutliningIndicators/None.gif)
364
![](/Images/OutliningIndicators/None.gif)
365
![](/Images/OutliningIndicators/None.gif)
366
![](/Images/OutliningIndicators/None.gif)
367
![](/Images/OutliningIndicators/None.gif)
368
![](/Images/OutliningIndicators/None.gif)
369
![](/Images/OutliningIndicators/None.gif)
370
![](/Images/OutliningIndicators/None.gif)
371
![](/Images/OutliningIndicators/None.gif)