Mercurial > pub > bltoolkit
view Data/Create Scripts/MsSql2000.sql @ 1:8f65451dc28f
Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author | cin |
---|---|
date | Fri, 28 Mar 2014 01:04:56 +0400 |
parents | f990fcb411a9 |
children |
line wrap: on
line source
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