You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
EntityFrameworkCore.Jet/test/EFCore.Jet.Design.Functiona.../ReverseEngineering/E2E.sql

364 lines
11 KiB
Transact-SQL

-- Copyright (c) .NET Foundation. All rights reserved.
-- Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
SET NOCOUNT ON
GO
USE master
GO
if exists (select * from sysdatabases where name='SqlServerReverseEngineerTestE2E')
DROP DATABASE SqlServerReverseEngineerTestE2E
GO
DECLARE @device_directory NVARCHAR(520)
SELECT @device_directory = SUBSTRING(filename, 1, CHARINDEX(N'master.mdf', LOWER(filename)) - 1)
FROM master.dbo.sysaltfiles WHERE dbid = 1 AND fileid = 1
EXECUTE (N'CREATE DATABASE SqlServerReverseEngineerTestE2E
ON PRIMARY (NAME = N''SqlServerReverseEngineerTestE2E'', FILENAME = N''' + @device_directory + N'SqlServerReverseEngineerTestE2E.mdf'')
LOG ON (NAME = N''SqlServerReverseEngineerTestE2E_log'', FILENAME = N''' + @device_directory + N'SqlServerReverseEngineerTestE2E_log.ldf'')')
GO
SET QUOTED_IDENTIFIER ON
GO
/* Set DATEFORMAT so that the date strings are interpreted correctly regardless of
the default DATEFORMAT on the server.
*/
SET DATEFORMAT mdy
GO
SET ANSI_NULLS ON
GO
USE "SqlServerReverseEngineerTestE2E"
GO
if exists (select * from sysobjects where id = object_id('dbo.AllDataTypes') and sysstat & 0xf = 3)
DROP TABLE "dbo"."AllDataTypes"
GO
if exists (select * from sysobjects where id = object_id('dbo.PropertyConfiguration') and sysstat & 0xf = 3)
DROP TABLE "dbo"."PropertyConfiguration"
GO
if exists (select * from sysobjects where id = object_id('[dbo].[Test Spaces Keywords Table]') and sysstat & 0xf = 3)
DROP TABLE "dbo"."Test Spaces Keywords Table"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToManyDependent') and sysstat & 0xf = 3)
drop table "dbo"."OneToManyDependent"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToManyPrincipal') and sysstat & 0xf = 3)
drop table "dbo"."OneToManyPrincipal"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToOneDependent') and sysstat & 0xf = 3)
drop table "dbo"."OneToOneDependent"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToOnePrincipal') and sysstat & 0xf = 3)
drop table "dbo"."OneToOnePrincipal"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToOneSeparateFKDependent') and sysstat & 0xf = 3)
drop table "dbo"."OneToOneSeparateFKDependent"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToOneSeparateFKPrincipal') and sysstat & 0xf = 3)
drop table "dbo"."OneToOneSeparateFKPrincipal"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToOneFKToUniqueKeyDependent') and sysstat & 0xf = 3)
drop table "dbo"."OneToOneFKToUniqueKeyDependent"
GO
if exists (select * from sysobjects where id = object_id('dbo.OneToOneFKToUniqueKeyPrincipal') and sysstat & 0xf = 3)
drop table "dbo"."OneToOneFKToUniqueKeyPrincipal"
GO
if exists (select * from sysobjects where id = object_id('dbo.ReferredToByTableWithUnmappablePrimaryKeyColumn') and sysstat & 0xf = 3)
drop table "dbo"."ReferredToByTableWithUnmappablePrimaryKeyColumn"
GO
if exists (select * from sysobjects where id = object_id('dbo.SelfReferencing') and sysstat & 0xf = 3)
drop table "dbo"."SelfReferencing"
GO
if exists (select * from sysobjects where id = object_id('dbo.FilteredOut') and sysstat & 0xf = 3)
drop table "dbo"."FilteredOut"
GO
CREATE TABLE "dbo"."AllDataTypes" (
"AllDataTypesID" "int" IDENTITY(1, 1) PRIMARY KEY,
"bigintColumn" "bigint" NOT NULL,
"bitColumn" "bit" NOT NULL,
"decimalColumn" "decimal" NOT NULL,
"intColumn" "int" NOT NULL,
"moneyColumn" "money" NOT NULL,
"numericColumn" "numeric" NOT NULL,
"smallintColumn" "smallint" NOT NULL,
"smallmoneyColumn" "smallmoney" NOT NULL,
"tinyintColumn" "tinyint" NOT NULL,
"floatColumn" "float" NOT NULL,
"realColumn" "real" NULL,
"dateColumn" "date" NOT NULL,
"datetimeColumn" "datetime" NULL,
"datetime2Column" "datetime2" NULL,
"datetime24Column" datetime2(4) NULL,
"datetimeoffsetColumn" "datetimeoffset" NULL,
"datetimeoffset5Column" datetimeoffset(5) NULL,
"smalldatetimeColumn" "smalldatetime" NULL,
"timeColumn" "time" NULL,
"time4Column" time(4) NULL,
"charColumn" "char" NULL,
"textColumn" "text" NULL,
"varcharColumn" "varchar" NULL,
"ncharColumn" "nchar" NULL,
"ntextColumn" "ntext" NULL,
"nvarcharColumn" "nvarchar" NULL,
"binaryColumn" "binary" NULL,
"imageColumn" "image" NULL,
"varbinaryColumn" "varbinary" NULL,
"timestampColumn" "timestamp" NULL,
"uniqueidentifierColumn" "uniqueidentifier" NULL,
"hierarchyidColumn" "hierarchyid" NULL,
"xmlColumn" "xml" NULL,
"geographyColumn" "geography" NULL,
"geometryColumn" "geometry" NULL,
)
GO
CREATE TABLE "dbo"."PropertyConfiguration" (
"PropertyConfigurationID" "tinyint" IDENTITY(1, 1) PRIMARY KEY, -- tests error message about tinyint identity columns
"WithDateDefaultExpression" "datetime2" NOT NULL DEFAULT (getdate()),
"WithDateFixedDefault" "datetime2" NOT NULL DEFAULT ('October 20, 2015 11am'),
"WithDateNullDefault" "datetime2" NULL DEFAULT (NULL),
"WithGuidDefaultExpression" "uniqueidentifier" NOT NULL DEFAULT (newsequentialid()),
"WithVarcharNullDefaultValue" "varchar" NULL DEFAULT (NULL),
"WithDefaultValue" "int" NOT NULL DEFAULT ((-1)),
"WithNullDefaultValue" "smallint" NULL DEFAULT (NULL),
"WithMoneyDefaultValue" "money" NOT NULL DEFAULT ((0.00)),
"A" "int" NOT NULL,
"B" "int" NOT NULL,
"SumOfAAndB" AS A + B PERSISTED, -- tests StoreGeneratedPattern
"RowversionColumn" "rowversion" NOT NULL,
)
GO
CREATE INDEX Test_PropertyConfiguration_Index
ON "dbo"."PropertyConfiguration" (A, B)
GO
CREATE TABLE "dbo"."Test Spaces Keywords Table" (
"Test Spaces Keywords TableID" "int" PRIMARY KEY,
"abstract" "int" NOT NULL,
"class" "int" NULL,
"volatile" "int" NOT NULL,
"Spaces In Column" "int" NULL,
"Tabs In Column" "int" NOT NULL,
"@AtSymbolAtStartOfColumn" "int" NULL,
"@Multiple@At@Symbols@In@Column" "int" NOT NULL,
"Commas,In,Column" "int" NULL,
"$Dollar$Sign$Column" "int" NOT NULL,
"!Exclamation!Mark!Column" "int" NULL,
"""Double""Quotes""Column" "int" NULL,
"\Backslashes\In\Column" "int" NULL,
)
GO
CREATE TABLE "SelfReferencing" (
"SelfReferencingID" "int" PRIMARY KEY,
"Name" nvarchar(20) NOT NULL,
"Description" nvarchar(100) NOT NULL,
"SelfReferenceFK" "int" NULL,
CONSTRAINT "FK_SelfReferencing" FOREIGN KEY
(
"SelfReferenceFK"
) REFERENCES "dbo"."SelfReferencing" (
"SelfReferencingID"
)
)
GO
CREATE TABLE "OneToManyPrincipal" (
"OneToManyPrincipalID1" "int",
"OneToManyPrincipalID2" "int",
"Other" nvarchar(20) NOT NULL,
CONSTRAINT "PK_OneToManyPrincipal" PRIMARY KEY CLUSTERED
(
"OneToManyPrincipalID1", "OneToManyPrincipalID2"
)
)
GO
CREATE TABLE "OneToManyDependent" (
"OneToManyDependentID1" "int",
"OneToManyDependentID2" "int",
"SomeDependentEndColumn" nvarchar (20) NOT NULL,
"OneToManyDependentFK2" "int" NULL, -- deliberately put FK columns in other order to make sure we get correct order in key
"OneToManyDependentFK1" "int" NULL,
CONSTRAINT "PK_OneToManyDependent" PRIMARY KEY CLUSTERED
(
"OneToManyDependentID1", "OneToManyDependentID2"
),
CONSTRAINT "FK_OneToManyDependent" FOREIGN KEY
(
"OneToManyDependentFK1", "OneToManyDependentFK2"
) REFERENCES "dbo"."OneToManyPrincipal" (
"OneToManyPrincipalID1", "OneToManyPrincipalID2"
)
)
GO
CREATE TABLE "OneToOnePrincipal" (
"OneToOnePrincipalID1" "int",
"OneToOnePrincipalID2" "int",
"SomeOneToOnePrincipalColumn" nvarchar (20) NOT NULL,
CONSTRAINT "PK_OneToOnePrincipal" PRIMARY KEY CLUSTERED
(
"OneToOnePrincipalID1", "OneToOnePrincipalID2"
)
)
GO
CREATE TABLE "OneToOneDependent" (
"OneToOneDependentID1" "int",
"OneToOneDependentID2" "int",
"SomeDependentEndColumn" nvarchar (20) NOT NULL,
CONSTRAINT "PK_OneToOneDependent" PRIMARY KEY CLUSTERED
(
"OneToOneDependentID1", "OneToOneDependentID2"
),
CONSTRAINT "FK_OneToOneDependent" FOREIGN KEY
(
"OneToOneDependentID1", "OneToOneDependentID2"
) REFERENCES "dbo"."OneToOnePrincipal" (
"OneToOnePrincipalID1", "OneToOnePrincipalID2"
),
)
GO
CREATE TABLE "OneToOneSeparateFKPrincipal" (
"OneToOneSeparateFKPrincipalID1" "int",
"OneToOneSeparateFKPrincipalID2" "int",
"SomeOneToOneSeparateFKPrincipalColumn" nvarchar (20) NOT NULL,
CONSTRAINT "PK_OneToOneSeparateFKPrincipal" PRIMARY KEY CLUSTERED
(
"OneToOneSeparateFKPrincipalID1", "OneToOneSeparateFKPrincipalID2"
)
)
GO
CREATE TABLE "OneToOneSeparateFKDependent" (
"OneToOneSeparateFKDependentID1" "int",
"OneToOneSeparateFKDependentID2" "int",
"SomeDependentEndColumn" nvarchar (20) NOT NULL,
"OneToOneSeparateFKDependentFK1" "int" NULL,
"OneToOneSeparateFKDependentFK2" "int" NULL,
CONSTRAINT "PK_OneToOneSeparateFKDependent" PRIMARY KEY CLUSTERED
(
"OneToOneSeparateFKDependentID1", "OneToOneSeparateFKDependentID2"
),
CONSTRAINT "FK_OneToOneSeparateFKDependent" FOREIGN KEY
(
"OneToOneSeparateFKDependentFK1", "OneToOneSeparateFKDependentFK2"
) REFERENCES "dbo"."OneToOneSeparateFKPrincipal" (
"OneToOneSeparateFKPrincipalID1", "OneToOneSeparateFKPrincipalID2"
),
CONSTRAINT "UK_OneToOneSeparateFKDependent" UNIQUE
(
"OneToOneSeparateFKDependentFK1", "OneToOneSeparateFKDependentFK2"
)
)
GO
CREATE TABLE "OneToOneFKToUniqueKeyPrincipal" (
"OneToOneFKToUniqueKeyPrincipalID1" "int",
"OneToOneFKToUniqueKeyPrincipalID2" "int",
"SomePrincipalColumn" nvarchar (20) NOT NULL,
"OneToOneFKToUniqueKeyPrincipalUniqueKey1" "int" NOT NULL,
"OneToOneFKToUniqueKeyPrincipalUniqueKey2" "int" NOT NULL,
CONSTRAINT "PK_OneToOneFKToUniqueKeyPrincipal" PRIMARY KEY CLUSTERED
(
"OneToOneFKToUniqueKeyPrincipalID1", "OneToOneFKToUniqueKeyPrincipalID2"
),
CONSTRAINT "UK_OneToOneFKToUniqueKeyPrincipal" UNIQUE
(
"OneToOneFKToUniqueKeyPrincipalUniqueKey1", "OneToOneFKToUniqueKeyPrincipalUniqueKey2"
)
)
GO
CREATE TABLE "OneToOneFKToUniqueKeyDependent" (
"OneToOneFKToUniqueKeyDependentID1" "int",
"OneToOneFKToUniqueKeyDependentID2" "int",
"SomeColumn" nvarchar (20) NOT NULL,
"OneToOneFKToUniqueKeyDependentFK1" "int" NULL,
"OneToOneFKToUniqueKeyDependentFK2" "int" NULL,
CONSTRAINT "PK_OneToOneFKToUniqueKeyDependent" PRIMARY KEY CLUSTERED
(
"OneToOneFKToUniqueKeyDependentID1", "OneToOneFKToUniqueKeyDependentID2"
),
CONSTRAINT "FK_OneToOneFKToUniqueKeyDependent" FOREIGN KEY
(
"OneToOneFKToUniqueKeyDependentFK1", "OneToOneFKToUniqueKeyDependentFK2"
) REFERENCES "dbo"."OneToOneFKToUniqueKeyPrincipal" (
"OneToOneFKToUniqueKeyPrincipalUniqueKey1", "OneToOneFKToUniqueKeyPrincipalUniqueKey2"
),
CONSTRAINT "UK_OneToOneFKToUniqueKeyDependent" UNIQUE
(
"OneToOneFKToUniqueKeyDependentFK1", "OneToOneFKToUniqueKeyDependentFK2"
)
)
GO
CREATE TABLE "ReferredToByTableWithUnmappablePrimaryKeyColumn" (
"ReferredToByTableWithUnmappablePrimaryKeyColumnID" "int" PRIMARY KEY,
"AColumn" nvarchar(20) NOT NULL,
"ValueGeneratedOnAddColumn" "int" IDENTITY(1, 1) NOT NULL,
)
GO
CREATE TABLE "TableWithUnmappablePrimaryKeyColumn" (
"TableWithUnmappablePrimaryKeyColumnID" int PRIMARY KEY,
"AnotherColumn" nvarchar(20) NOT NULL,
"TableWithUnmappablePrimaryKeyColumnFK" "int" NULL,
CONSTRAINT "FK_TableWithUnmappablePrimaryKeyColumn" FOREIGN KEY
(
"TableWithUnmappablePrimaryKeyColumnFK"
) REFERENCES "dbo"."ReferredToByTableWithUnmappablePrimaryKeyColumn" (
"ReferredToByTableWithUnmappablePrimaryKeyColumnID"
),
CONSTRAINT "UK_TableWithUnmappablePrimaryKeyColumn" UNIQUE
(
"AnotherColumn" -- tests that RevEng can assign an alternate key on a table with a PK which cannot be mapped
)
)
GO
CREATE TABLE "FilteredOut" (
"FilteredOutID" "int" PRIMARY KEY,
"Unused1" nvarchar(20) NOT NULL,
"Unused2" "int" NOT NULL,
)
GO