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

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Data/Create Scripts/MsSql2000.sql	Thu Mar 27 21:46:09 2014 +0400
@@ -0,0 +1,472 @@
+DROP TABLE Doctor
+DROP TABLE Patient
+DROP TABLE Person
+
+CREATE TABLE Person
+(
+	PersonID   int          NOT NULL IDENTITY(1,1) CONSTRAINT PK_Person PRIMARY KEY CLUSTERED,
+	FirstName  nvarchar(50) NOT NULL,
+	LastName   nvarchar(50) NOT NULL,
+	MiddleName nvarchar(50)     NULL,
+	Gender     char(1)      NOT NULL CONSTRAINT CK_Person_Gender CHECK (Gender in ('M', 'F', 'U', 'O'))
+)
+ON [PRIMARY]
+GO
+
+INSERT INTO Person (FirstName, LastName, Gender) VALUES ('John',   'Pupkin',    'M')
+GO
+INSERT INTO Person (FirstName, LastName, Gender) VALUES ('Tester', 'Testerson', 'M')
+GO
+
+-- Doctor Table Extension
+
+CREATE TABLE Doctor
+(
+	PersonID int          NOT NULL
+		CONSTRAINT PK_Doctor        PRIMARY KEY CLUSTERED
+		CONSTRAINT FK_Doctor_Person FOREIGN KEY
+			REFERENCES Person ([PersonID])
+			ON UPDATE CASCADE
+			ON DELETE CASCADE,
+	Taxonomy nvarchar(50) NOT NULL
+)
+ON [PRIMARY]
+GO
+
+INSERT INTO Doctor (PersonID, Taxonomy) VALUES (1, 'Psychiatry')
+GO
+
+-- Patient Table Extension
+
+CREATE TABLE Patient
+(
+	PersonID  int           NOT NULL
+		CONSTRAINT PK_Patient        PRIMARY KEY CLUSTERED
+		CONSTRAINT FK_Patient_Person FOREIGN KEY
+			REFERENCES Person ([PersonID])
+			ON UPDATE CASCADE
+			ON DELETE CASCADE,
+	Diagnosis nvarchar(256) NOT NULL
+)
+ON [PRIMARY]
+GO
+
+INSERT INTO Patient (PersonID, Diagnosis) VALUES (2, 'Hallucination with Paranoid Bugs'' Delirium of Persecution')
+GO
+
+-- Person_SelectByKey
+
+DROP Procedure Person_SelectByKey
+GO
+
+CREATE Procedure Person_SelectByKey
+	@id int
+AS
+
+SELECT * FROM Person WHERE PersonID = @id
+
+GO
+
+GRANT EXEC ON Person_SelectByKey TO PUBLIC
+GO
+
+-- Person_SelectAll
+
+DROP Procedure Person_SelectAll
+GO
+
+CREATE Procedure Person_SelectAll
+AS
+
+SELECT * FROM Person
+
+GO
+
+GRANT EXEC ON Person_SelectAll TO PUBLIC
+GO
+
+-- Person_SelectByName
+
+DROP Procedure Person_SelectByName
+GO
+
+CREATE Procedure Person_SelectByName
+	@firstName nvarchar(50),
+	@lastName  nvarchar(50)
+AS
+
+SELECT
+	*
+FROM
+	Person
+WHERE
+	FirstName = @firstName AND LastName = @lastName
+
+GO
+
+GRANT EXEC ON Person_SelectByName TO PUBLIC
+GO
+
+-- Person_SelectListByName
+
+DROP Procedure Person_SelectListByName
+GO
+
+CREATE Procedure Person_SelectListByName
+	@firstName nvarchar(50),
+	@lastName  nvarchar(50)
+AS
+
+SELECT
+	*
+FROM
+	Person
+WHERE
+	FirstName like @firstName AND LastName like @lastName
+
+GO
+
+GRANT EXEC ON Person_SelectByName TO PUBLIC
+GO
+
+-- Person_Insert
+
+DROP Procedure Person_Insert
+GO
+
+CREATE Procedure Person_Insert
+	@FirstName  nvarchar(50),
+	@LastName   nvarchar(50),
+	@MiddleName nvarchar(50),
+	@Gender     char(1)
+AS
+
+INSERT INTO Person
+	( LastName,  FirstName,  MiddleName,  Gender)
+VALUES
+	(@LastName, @FirstName, @MiddleName, @Gender)
+
+SELECT Cast(SCOPE_IDENTITY() as int) PersonID
+
+GO
+
+GRANT EXEC ON Person_Insert TO PUBLIC
+GO
+
+-- Person_Insert_OutputParameter
+
+DROP Procedure Person_Insert_OutputParameter
+GO
+
+CREATE Procedure Person_Insert_OutputParameter
+	@FirstName  nvarchar(50),
+	@LastName   nvarchar(50),
+	@MiddleName nvarchar(50),
+	@Gender     char(1),
+	@PersonID   int output
+AS
+
+INSERT INTO Person
+	( LastName,  FirstName,  MiddleName,  Gender)
+VALUES
+	(@LastName, @FirstName, @MiddleName, @Gender)
+
+SET @PersonID = Cast(SCOPE_IDENTITY() as int)
+
+GO
+
+GRANT EXEC ON Person_Insert_OutputParameter TO PUBLIC
+GO
+
+-- Person_Update
+
+DROP Procedure Person_Update
+GO
+
+CREATE Procedure Person_Update
+	@PersonID   int,
+	@FirstName  nvarchar(50),
+	@LastName   nvarchar(50),
+	@MiddleName nvarchar(50),
+	@Gender     char(1)
+AS
+
+UPDATE
+	Person
+SET
+	LastName   = @LastName,
+	FirstName  = @FirstName,
+	MiddleName = @MiddleName,
+	Gender     = @Gender
+WHERE
+	PersonID = @PersonID
+
+GO
+
+GRANT EXEC ON Person_Update TO PUBLIC
+GO
+
+-- Person_Delete
+
+DROP Procedure Person_Delete
+GO
+
+CREATE Procedure Person_Delete
+	@PersonID int
+AS
+
+DELETE FROM Person WHERE PersonID = @PersonID
+
+GO
+
+GRANT EXEC ON Person_Delete TO PUBLIC
+GO
+
+-- Patient_SelectAll
+
+DROP Procedure Patient_SelectAll
+GO
+
+CREATE Procedure Patient_SelectAll
+AS
+
+SELECT
+	Person.*, Patient.Diagnosis
+FROM
+	Patient, Person
+WHERE
+	Patient.PersonID = Person.PersonID
+
+GO
+
+GRANT EXEC ON Patient_SelectAll TO PUBLIC
+GO
+
+-- Patient_SelectByName
+
+DROP Procedure Patient_SelectByName
+GO
+
+CREATE Procedure Patient_SelectByName
+	@firstName nvarchar(50),
+	@lastName  nvarchar(50)
+AS
+
+SELECT
+	Person.*, Patient.Diagnosis
+FROM
+	Patient, Person
+WHERE
+	Patient.PersonID = Person.PersonID
+	AND FirstName = @firstName AND LastName = @lastName
+
+GO
+
+GRANT EXEC ON Person_SelectByName TO PUBLIC
+GO
+
+-- BinaryData Table
+
+DROP TABLE BinaryData
+
+CREATE TABLE BinaryData
+(
+	BinaryDataID int             NOT NULL IDENTITY(1,1) CONSTRAINT PK_BinaryData PRIMARY KEY CLUSTERED,
+	Stamp        timestamp       NOT NULL,
+	Data         varbinary(1024) NOT NULL)
+ON [PRIMARY]
+GO
+
+-- OutRefTest
+
+DROP Procedure OutRefTest
+GO
+
+CREATE Procedure OutRefTest
+	@ID             int,
+	@outputID       int output,
+	@inputOutputID  int output,
+	@str            varchar(50),
+	@outputStr      varchar(50) output,
+	@inputOutputStr varchar(50) output
+AS
+
+SET @outputID       = @ID
+SET @inputOutputID  = @ID + @inputOutputID
+SET @outputStr      = @str
+SET @inputOutputStr = @str + @inputOutputStr
+
+GO
+
+-- OutRefEnumTest
+
+DROP Procedure OutRefEnumTest
+GO
+
+CREATE Procedure OutRefEnumTest
+	@str            varchar(50),
+	@outputStr      varchar(50) output,
+	@inputOutputStr varchar(50) output
+AS
+
+SET @outputStr      = @str
+SET @inputOutputStr = @str + @inputOutputStr
+
+GO
+
+-- ExecuteScalarTest
+
+DROP Procedure Scalar_DataReader
+GO
+
+CREATE Procedure Scalar_DataReader
+AS
+SELECT Cast(12345 as int) AS intField, Cast('54321' as varchar(50)) AS stringField
+
+GO
+
+DROP Procedure Scalar_OutputParameter
+GO
+
+CREATE Procedure Scalar_OutputParameter
+	@outputInt    int = 0 output,
+	@outputString varchar(50) = '' output
+AS
+BEGIN
+	SET @outputInt    = 12345
+	SET @outputString = '54321'
+END
+
+GO
+
+DROP Function Scalar_ReturnParameter
+GO
+
+CREATE Function Scalar_ReturnParameter()
+RETURNS int
+AS
+BEGIN
+	RETURN 12345
+END
+
+GO
+
+DROP Procedure Scalar_ReturnParameterWithObject
+GO
+
+CREATE Procedure Scalar_ReturnParameterWithObject
+	@id int
+AS
+BEGIN
+	SELECT * FROM Person WHERE PersonID = @id
+	RETURN @id
+END
+
+GO
+
+-- Data Types test
+
+DROP TABLE DataTypeTest
+GO
+
+CREATE TABLE DataTypeTest
+(
+	DataTypeID      int          NOT NULL IDENTITY(1,1) CONSTRAINT PK_DataType PRIMARY KEY CLUSTERED,
+	Binary_         binary(50)       NULL,
+	Boolean_        bit              NULL,
+	Byte_           tinyint          NULL,
+	Bytes_          varbinary(50)    NULL,
+	Char_           char(1)          NULL,
+	DateTime_       datetime         NULL,
+	Decimal_        decimal(20,2)    NULL,
+	Double_         float            NULL,
+	Guid_           uniqueidentifier NULL,
+	Int16_          smallint         NULL,
+	Int32_          int              NULL,
+	Int64_          bigint           NULL,
+	Money_          money            NULL,
+	SByte_          tinyint          NULL,
+	Single_         real             NULL,
+	Stream_         varbinary(50)    NULL,
+	String_         nvarchar(50)     NULL,
+	UInt16_         smallint         NULL,
+	UInt32_         int              NULL,
+	UInt64_         bigint           NULL,
+	Xml_            nvarchar(2000)   NULL
+) ON [PRIMARY]
+GO
+
+INSERT INTO DataTypeTest
+	(Binary_, Boolean_,   Byte_,  Bytes_,  Char_,  DateTime_, Decimal_,
+	 Double_,    Guid_,  Int16_,  Int32_,  Int64_,    Money_,   SByte_,
+	 Single_,  Stream_, String_, UInt16_, UInt32_,   UInt64_,     Xml_)
+VALUES
+	(   NULL,     NULL,    NULL,    NULL,    NULL,      NULL,     NULL,
+	    NULL,     NULL,    NULL,    NULL,    NULL,      NULL,     NULL,
+	    NULL,     NULL,    NULL,    NULL,    NULL,      NULL,     NULL)
+GO
+
+INSERT INTO DataTypeTest
+	(Binary_, Boolean_,   Byte_,  Bytes_,  Char_,  DateTime_, Decimal_,
+	 Double_,    Guid_,  Int16_,  Int32_,  Int64_,    Money_,   SByte_,
+	 Single_,  Stream_, String_, UInt16_, UInt32_,   UInt64_,
+	 Xml_)
+VALUES
+	(NewID(),        1,     255, NewID(),     'B', GetDate(), 12345.67,
+	1234.567,  NewID(),   32767,   32768, 1000000,   12.3456,      127,
+	1234.123,  NewID(), 'string',  32767,   32768, 200000000,
+	'<root><element strattr="strvalue" intattr="12345"/></root>')
+GO
+
+
+DROP FUNCTION GetParentByID
+GO
+
+DROP TABLE Parent
+GO
+DROP TABLE Child
+GO
+DROP TABLE GrandChild
+GO
+
+CREATE TABLE Parent      (ParentID int, Value1 int)
+GO
+CREATE TABLE Child       (ParentID int, ChildID int)
+GO
+CREATE TABLE GrandChild  (ParentID int, ChildID int, GrandChildID int)
+GO
+
+CREATE FUNCTION GetParentByID(@id int)
+RETURNS TABLE
+AS
+RETURN 
+(
+	SELECT * FROM Parent WHERE ParentID = @id
+)
+GO
+
+DROP TABLE LinqDataTypes
+GO
+
+CREATE TABLE LinqDataTypes
+(
+	ID             int,
+	MoneyValue     decimal(10,4),
+	DateTimeValue  datetime,
+	DateTimeValue2 datetime,
+	BoolValue      bit,
+	GuidValue      uniqueidentifier,
+	BinaryValue    varbinary(5000) NULL,
+	SmallIntValue  smallint,
+	IntValue       int NULL,
+	BigIntValue    bigint NULL
+)
+GO
+
+DROP TABLE TestIdentity
+GO
+
+CREATE TABLE TestIdentity (
+	ID int NOT NULL IDENTITY(1,1) CONSTRAINT PK_TestIdentity PRIMARY KEY CLUSTERED
+)
+GO