comparison Data/Create Scripts/MsSql2000.sql @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f990fcb411a9
1 DROP TABLE Doctor
2 DROP TABLE Patient
3 DROP TABLE Person
4
5 CREATE TABLE Person
6 (
7 PersonID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_Person PRIMARY KEY CLUSTERED,
8 FirstName nvarchar(50) NOT NULL,
9 LastName nvarchar(50) NOT NULL,
10 MiddleName nvarchar(50) NULL,
11 Gender char(1) NOT NULL CONSTRAINT CK_Person_Gender CHECK (Gender in ('M', 'F', 'U', 'O'))
12 )
13 ON [PRIMARY]
14 GO
15
16 INSERT INTO Person (FirstName, LastName, Gender) VALUES ('John', 'Pupkin', 'M')
17 GO
18 INSERT INTO Person (FirstName, LastName, Gender) VALUES ('Tester', 'Testerson', 'M')
19 GO
20
21 -- Doctor Table Extension
22
23 CREATE TABLE Doctor
24 (
25 PersonID int NOT NULL
26 CONSTRAINT PK_Doctor PRIMARY KEY CLUSTERED
27 CONSTRAINT FK_Doctor_Person FOREIGN KEY
28 REFERENCES Person ([PersonID])
29 ON UPDATE CASCADE
30 ON DELETE CASCADE,
31 Taxonomy nvarchar(50) NOT NULL
32 )
33 ON [PRIMARY]
34 GO
35
36 INSERT INTO Doctor (PersonID, Taxonomy) VALUES (1, 'Psychiatry')
37 GO
38
39 -- Patient Table Extension
40
41 CREATE TABLE Patient
42 (
43 PersonID int NOT NULL
44 CONSTRAINT PK_Patient PRIMARY KEY CLUSTERED
45 CONSTRAINT FK_Patient_Person FOREIGN KEY
46 REFERENCES Person ([PersonID])
47 ON UPDATE CASCADE
48 ON DELETE CASCADE,
49 Diagnosis nvarchar(256) NOT NULL
50 )
51 ON [PRIMARY]
52 GO
53
54 INSERT INTO Patient (PersonID, Diagnosis) VALUES (2, 'Hallucination with Paranoid Bugs'' Delirium of Persecution')
55 GO
56
57 -- Person_SelectByKey
58
59 DROP Procedure Person_SelectByKey
60 GO
61
62 CREATE Procedure Person_SelectByKey
63 @id int
64 AS
65
66 SELECT * FROM Person WHERE PersonID = @id
67
68 GO
69
70 GRANT EXEC ON Person_SelectByKey TO PUBLIC
71 GO
72
73 -- Person_SelectAll
74
75 DROP Procedure Person_SelectAll
76 GO
77
78 CREATE Procedure Person_SelectAll
79 AS
80
81 SELECT * FROM Person
82
83 GO
84
85 GRANT EXEC ON Person_SelectAll TO PUBLIC
86 GO
87
88 -- Person_SelectByName
89
90 DROP Procedure Person_SelectByName
91 GO
92
93 CREATE Procedure Person_SelectByName
94 @firstName nvarchar(50),
95 @lastName nvarchar(50)
96 AS
97
98 SELECT
99 *
100 FROM
101 Person
102 WHERE
103 FirstName = @firstName AND LastName = @lastName
104
105 GO
106
107 GRANT EXEC ON Person_SelectByName TO PUBLIC
108 GO
109
110 -- Person_SelectListByName
111
112 DROP Procedure Person_SelectListByName
113 GO
114
115 CREATE Procedure Person_SelectListByName
116 @firstName nvarchar(50),
117 @lastName nvarchar(50)
118 AS
119
120 SELECT
121 *
122 FROM
123 Person
124 WHERE
125 FirstName like @firstName AND LastName like @lastName
126
127 GO
128
129 GRANT EXEC ON Person_SelectByName TO PUBLIC
130 GO
131
132 -- Person_Insert
133
134 DROP Procedure Person_Insert
135 GO
136
137 CREATE Procedure Person_Insert
138 @FirstName nvarchar(50),
139 @LastName nvarchar(50),
140 @MiddleName nvarchar(50),
141 @Gender char(1)
142 AS
143
144 INSERT INTO Person
145 ( LastName, FirstName, MiddleName, Gender)
146 VALUES
147 (@LastName, @FirstName, @MiddleName, @Gender)
148
149 SELECT Cast(SCOPE_IDENTITY() as int) PersonID
150
151 GO
152
153 GRANT EXEC ON Person_Insert TO PUBLIC
154 GO
155
156 -- Person_Insert_OutputParameter
157
158 DROP Procedure Person_Insert_OutputParameter
159 GO
160
161 CREATE Procedure Person_Insert_OutputParameter
162 @FirstName nvarchar(50),
163 @LastName nvarchar(50),
164 @MiddleName nvarchar(50),
165 @Gender char(1),
166 @PersonID int output
167 AS
168
169 INSERT INTO Person
170 ( LastName, FirstName, MiddleName, Gender)
171 VALUES
172 (@LastName, @FirstName, @MiddleName, @Gender)
173
174 SET @PersonID = Cast(SCOPE_IDENTITY() as int)
175
176 GO
177
178 GRANT EXEC ON Person_Insert_OutputParameter TO PUBLIC
179 GO
180
181 -- Person_Update
182
183 DROP Procedure Person_Update
184 GO
185
186 CREATE Procedure Person_Update
187 @PersonID int,
188 @FirstName nvarchar(50),
189 @LastName nvarchar(50),
190 @MiddleName nvarchar(50),
191 @Gender char(1)
192 AS
193
194 UPDATE
195 Person
196 SET
197 LastName = @LastName,
198 FirstName = @FirstName,
199 MiddleName = @MiddleName,
200 Gender = @Gender
201 WHERE
202 PersonID = @PersonID
203
204 GO
205
206 GRANT EXEC ON Person_Update TO PUBLIC
207 GO
208
209 -- Person_Delete
210
211 DROP Procedure Person_Delete
212 GO
213
214 CREATE Procedure Person_Delete
215 @PersonID int
216 AS
217
218 DELETE FROM Person WHERE PersonID = @PersonID
219
220 GO
221
222 GRANT EXEC ON Person_Delete TO PUBLIC
223 GO
224
225 -- Patient_SelectAll
226
227 DROP Procedure Patient_SelectAll
228 GO
229
230 CREATE Procedure Patient_SelectAll
231 AS
232
233 SELECT
234 Person.*, Patient.Diagnosis
235 FROM
236 Patient, Person
237 WHERE
238 Patient.PersonID = Person.PersonID
239
240 GO
241
242 GRANT EXEC ON Patient_SelectAll TO PUBLIC
243 GO
244
245 -- Patient_SelectByName
246
247 DROP Procedure Patient_SelectByName
248 GO
249
250 CREATE Procedure Patient_SelectByName
251 @firstName nvarchar(50),
252 @lastName nvarchar(50)
253 AS
254
255 SELECT
256 Person.*, Patient.Diagnosis
257 FROM
258 Patient, Person
259 WHERE
260 Patient.PersonID = Person.PersonID
261 AND FirstName = @firstName AND LastName = @lastName
262
263 GO
264
265 GRANT EXEC ON Person_SelectByName TO PUBLIC
266 GO
267
268 -- BinaryData Table
269
270 DROP TABLE BinaryData
271
272 CREATE TABLE BinaryData
273 (
274 BinaryDataID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_BinaryData PRIMARY KEY CLUSTERED,
275 Stamp timestamp NOT NULL,
276 Data varbinary(1024) NOT NULL)
277 ON [PRIMARY]
278 GO
279
280 -- OutRefTest
281
282 DROP Procedure OutRefTest
283 GO
284
285 CREATE Procedure OutRefTest
286 @ID int,
287 @outputID int output,
288 @inputOutputID int output,
289 @str varchar(50),
290 @outputStr varchar(50) output,
291 @inputOutputStr varchar(50) output
292 AS
293
294 SET @outputID = @ID
295 SET @inputOutputID = @ID + @inputOutputID
296 SET @outputStr = @str
297 SET @inputOutputStr = @str + @inputOutputStr
298
299 GO
300
301 -- OutRefEnumTest
302
303 DROP Procedure OutRefEnumTest
304 GO
305
306 CREATE Procedure OutRefEnumTest
307 @str varchar(50),
308 @outputStr varchar(50) output,
309 @inputOutputStr varchar(50) output
310 AS
311
312 SET @outputStr = @str
313 SET @inputOutputStr = @str + @inputOutputStr
314
315 GO
316
317 -- ExecuteScalarTest
318
319 DROP Procedure Scalar_DataReader
320 GO
321
322 CREATE Procedure Scalar_DataReader
323 AS
324 SELECT Cast(12345 as int) AS intField, Cast('54321' as varchar(50)) AS stringField
325
326 GO
327
328 DROP Procedure Scalar_OutputParameter
329 GO
330
331 CREATE Procedure Scalar_OutputParameter
332 @outputInt int = 0 output,
333 @outputString varchar(50) = '' output
334 AS
335 BEGIN
336 SET @outputInt = 12345
337 SET @outputString = '54321'
338 END
339
340 GO
341
342 DROP Function Scalar_ReturnParameter
343 GO
344
345 CREATE Function Scalar_ReturnParameter()
346 RETURNS int
347 AS
348 BEGIN
349 RETURN 12345
350 END
351
352 GO
353
354 DROP Procedure Scalar_ReturnParameterWithObject
355 GO
356
357 CREATE Procedure Scalar_ReturnParameterWithObject
358 @id int
359 AS
360 BEGIN
361 SELECT * FROM Person WHERE PersonID = @id
362 RETURN @id
363 END
364
365 GO
366
367 -- Data Types test
368
369 DROP TABLE DataTypeTest
370 GO
371
372 CREATE TABLE DataTypeTest
373 (
374 DataTypeID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_DataType PRIMARY KEY CLUSTERED,
375 Binary_ binary(50) NULL,
376 Boolean_ bit NULL,
377 Byte_ tinyint NULL,
378 Bytes_ varbinary(50) NULL,
379 Char_ char(1) NULL,
380 DateTime_ datetime NULL,
381 Decimal_ decimal(20,2) NULL,
382 Double_ float NULL,
383 Guid_ uniqueidentifier NULL,
384 Int16_ smallint NULL,
385 Int32_ int NULL,
386 Int64_ bigint NULL,
387 Money_ money NULL,
388 SByte_ tinyint NULL,
389 Single_ real NULL,
390 Stream_ varbinary(50) NULL,
391 String_ nvarchar(50) NULL,
392 UInt16_ smallint NULL,
393 UInt32_ int NULL,
394 UInt64_ bigint NULL,
395 Xml_ nvarchar(2000) NULL
396 ) ON [PRIMARY]
397 GO
398
399 INSERT INTO DataTypeTest
400 (Binary_, Boolean_, Byte_, Bytes_, Char_, DateTime_, Decimal_,
401 Double_, Guid_, Int16_, Int32_, Int64_, Money_, SByte_,
402 Single_, Stream_, String_, UInt16_, UInt32_, UInt64_, Xml_)
403 VALUES
404 ( NULL, NULL, NULL, NULL, NULL, NULL, NULL,
405 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
406 NULL, NULL, NULL, NULL, NULL, NULL, NULL)
407 GO
408
409 INSERT INTO DataTypeTest
410 (Binary_, Boolean_, Byte_, Bytes_, Char_, DateTime_, Decimal_,
411 Double_, Guid_, Int16_, Int32_, Int64_, Money_, SByte_,
412 Single_, Stream_, String_, UInt16_, UInt32_, UInt64_,
413 Xml_)
414 VALUES
415 (NewID(), 1, 255, NewID(), 'B', GetDate(), 12345.67,
416 1234.567, NewID(), 32767, 32768, 1000000, 12.3456, 127,
417 1234.123, NewID(), 'string', 32767, 32768, 200000000,
418 '<root><element strattr="strvalue" intattr="12345"/></root>')
419 GO
420
421
422 DROP FUNCTION GetParentByID
423 GO
424
425 DROP TABLE Parent
426 GO
427 DROP TABLE Child
428 GO
429 DROP TABLE GrandChild
430 GO
431
432 CREATE TABLE Parent (ParentID int, Value1 int)
433 GO
434 CREATE TABLE Child (ParentID int, ChildID int)
435 GO
436 CREATE TABLE GrandChild (ParentID int, ChildID int, GrandChildID int)
437 GO
438
439 CREATE FUNCTION GetParentByID(@id int)
440 RETURNS TABLE
441 AS
442 RETURN
443 (
444 SELECT * FROM Parent WHERE ParentID = @id
445 )
446 GO
447
448 DROP TABLE LinqDataTypes
449 GO
450
451 CREATE TABLE LinqDataTypes
452 (
453 ID int,
454 MoneyValue decimal(10,4),
455 DateTimeValue datetime,
456 DateTimeValue2 datetime,
457 BoolValue bit,
458 GuidValue uniqueidentifier,
459 BinaryValue varbinary(5000) NULL,
460 SmallIntValue smallint,
461 IntValue int NULL,
462 BigIntValue bigint NULL
463 )
464 GO
465
466 DROP TABLE TestIdentity
467 GO
468
469 CREATE TABLE TestIdentity (
470 ID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_TestIdentity PRIMARY KEY CLUSTERED
471 )
472 GO