Skip to content

Instantly share code, notes, and snippets.

@DanielLoth
Last active January 2, 2018 05:37
Show Gist options
  • Select an option

  • Save DanielLoth/59a6b1a8c336ac7a19425c3fe5035aaf to your computer and use it in GitHub Desktop.

Select an option

Save DanielLoth/59a6b1a8c336ac7a19425c3fe5035aaf to your computer and use it in GitHub Desktop.

GitHub repository

https://github.com/codesmithtools

Files of interest

All ****.zip files contain entire application templates.

This one actually creates SQL from the schema:

Templates-master\Projects\CSharp\APISample\EntryPoint.cs

Modified my version at work to look like this:

using System;
using CodeSmith.Engine;
using SchemaExplorer;

namespace APISample {
    public class EntryPoint {
        [STAThread]
        public static void Main() {
            string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\StoredProcedures.cst");
            var engine = new TemplateEngine(new DefaultEngineHost(System.IO.Path.GetDirectoryName(path)));

            CompileTemplateResult result = engine.Compile(path);
            if (true || result.Errors.Count == 0) {
                var database = new DatabaseSchema(new SqlSchemaProvider(), "Server=.;Database=OpenRACI;Integrated Security=True;");
                TableSchema table = database.Tables["top_Topic"];

                CodeTemplate template = result.CreateTemplateInstance();
                template.SetProperty("SourceTable", table);
                template.SetProperty("IncludeDrop", false);
                template.SetProperty("InsertPrefix", "Insert");

                template.Render(Console.Out);
            } else {
                foreach (var error in result.Errors)
                    Console.Error.WriteLine(error.ToString());
            }

            Console.WriteLine("\r\nPress any key to continue.");
            Console.ReadKey();
        }
    }
}

This one contains a Main method that generates the schema representation model:

SchemaHelper-master\Source\SchemaHelper.Tests\Program.cs

I modified my version at work to be like this:

using System;
using System.Text.RegularExpressions;
using CodeSmith.SchemaHelper;
using SchemaExplorer;
using Configuration = CodeSmith.SchemaHelper.Configuration;

namespace SchemaHelper.Tests {
    internal class Program {
        private static void Main(string[] args) {
            string databaseName = "OpenRACI";

            Configuration.Instance.IncludeFunctions = true;
            Configuration.Instance.IncludeViews = true;
            Configuration.Instance.IncludeAssociations = true;
            Configuration.Instance.IncludeEnumEntity = true;
            //Configuration.Instance.IncludeExpressions = true;
            Configuration.Instance.IncludeFunctionExtendedProperties = true;
            Configuration.Instance.IncludeManyToManyAssociations = true;
            Configuration.Instance.IncludeManyToManyEntity = true;
            Configuration.Instance.IncludeWinRTSupport = true;

            Configuration.Instance.CleanExpressions.Add(new Regex("^(sp|tbl|udf|vw|se)_", RegexOptions.IgnoreCase));
            Configuration.Instance.IgnoreExpressions.Add(new Regex("^dbo.sysdiagrams$", RegexOptions.IgnoreCase));
            Configuration.Instance.IgnoreExpressions.Add(new Regex("^dbo.aspnet", RegexOptions.IgnoreCase));
            Configuration.Instance.IgnoreExpressions.Add(new Regex("^dbo.vw_aspnet", RegexOptions.IgnoreCase));

            var database = new DatabaseSchema(new SqlSchemaProvider(), String.Format(@"Data Source=.;Initial Catalog={0};Integrated Security=True", databaseName)) {
                DeepLoad = true
            };
            var provider = new SchemaExplorerEntityProvider(database);
            var manager = new EntityManager(provider);

            var providerStr = provider.ToString();


            foreach (var entity in manager.Entities) {
                if (entity.Associations.Count == 0)
                    continue;

                Console.WriteLine("{0}-{1}", entity.TypeAccess, entity.Name);
                foreach (var association in entity.Associations) {
                    Console.WriteLine(String.Format("   {0} IsParent: {1}, AssociationType: {2}, Properties: {3}, Entity Properties: {4}, Foreign Entity Properties: {5}, AssociationKeyName: {6}", association.AssociationKeyName, association.IsParentEntity, association.AssociationType, association.Properties.Count, association.Entity.Properties.Count, association.ForeignEntity.Properties.Count, association.AssociationKeyName));
                }

                Console.WriteLine();
            }

            Console.ReadLine();
        }
    }
}
/****** Object: Database [OpenRACI] Script Date: 02/01/2018 4:16:19 PM ******/
CREATE DATABASE [OpenRACI]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'OpenRACI', FILENAME = N'M:\2012R2\OpenRACI.mdf' , SIZE = 25600KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'OpenRACI_log', FILENAME = N'M:\2012R2\OpenRACI_log.ldf' , SIZE = 21504KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [OpenRACI] SET COMPATIBILITY_LEVEL = 110
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [OpenRACI].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [OpenRACI] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [OpenRACI] SET ANSI_NULLS OFF
GO
ALTER DATABASE [OpenRACI] SET ANSI_PADDING OFF
GO
ALTER DATABASE [OpenRACI] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [OpenRACI] SET ARITHABORT OFF
GO
ALTER DATABASE [OpenRACI] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [OpenRACI] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [OpenRACI] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [OpenRACI] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [OpenRACI] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [OpenRACI] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [OpenRACI] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [OpenRACI] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [OpenRACI] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [OpenRACI] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [OpenRACI] SET DISABLE_BROKER
GO
ALTER DATABASE [OpenRACI] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [OpenRACI] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [OpenRACI] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [OpenRACI] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [OpenRACI] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [OpenRACI] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [OpenRACI] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [OpenRACI] SET RECOVERY FULL
GO
ALTER DATABASE [OpenRACI] SET MULTI_USER
GO
ALTER DATABASE [OpenRACI] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [OpenRACI] SET DB_CHAINING OFF
GO
ALTER DATABASE [OpenRACI] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
GO
ALTER DATABASE [OpenRACI] SET TARGET_RECOVERY_TIME = 0 SECONDS
GO
EXEC sys.sp_db_vardecimal_storage_format N'OpenRACI', N'ON'
GO
USE [OpenRACI]
GO
/****** Object: UserDefinedDataType [dbo].[MyInteger] Script Date: 02/01/2018 4:16:19 PM ******/
CREATE TYPE [dbo].[MyInteger] FROM [int] NOT NULL
GO
/****** Object: StoredProcedure [dbo].[MyProcedure] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[MyProcedure]
@IntParam int,
@AnsiParam varchar(10),
@UnicodeParam nvarchar(10)
as
begin
set nocount on
if @IntParam = 1
begin
select 1 as a
end
else
if @IntParam = 2
begin
select 1 as a, 2 as b
end
end
GO
/****** Object: Table [dbo].[prt_Party] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prt_Party](
[TenantCode] [nchar](10) NOT NULL,
[PartyCode] [nchar](10) NOT NULL,
[PartyTypeDiscriminator] [nchar](10) NOT NULL,
CONSTRAINT [PK_Party] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[PartyCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[prt_PartyType] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prt_PartyType](
[PartyTypeCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_prt_PartyType] PRIMARY KEY CLUSTERED
(
[PartyTypeCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[prt_Person] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prt_Person](
[TenantCode] [nchar](10) NOT NULL,
[PartyCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[PartyCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[prt_Team] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prt_Team](
[TenantCode] [nchar](10) NOT NULL,
[PartyCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Team] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[PartyCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[prt_TeamChildTeam] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prt_TeamChildTeam](
[TenantCode] [nchar](10) NOT NULL,
[ParentTeamPartyCode] [nchar](10) NOT NULL,
[ChildTeamPartyCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_TeamChildTeam] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[ParentTeamPartyCode] ASC,
[ChildTeamPartyCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[prt_TeamMember] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prt_TeamMember](
[TenantCode] [nchar](10) NOT NULL,
[TeamPartyCode] [nchar](10) NOT NULL,
[PersronPartyCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_TeamMember] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[TeamPartyCode] ASC,
[PersronPartyCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[prt_Vendor] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prt_Vendor](
[TenantCode] [nchar](10) NOT NULL,
[PartyCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Vendor] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[PartyCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[ten_Tenant] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ten_Tenant](
[TenantCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Tenant] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tmp_Template] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tmp_Template](
[TenantCode] [nchar](10) NOT NULL,
[TemplateCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Template] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[TemplateCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tmp_TemplateTask] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tmp_TemplateTask](
[TenantCode] [nchar](10) NOT NULL,
[TemplateCode] [nchar](10) NOT NULL,
[CategoryCode] [nchar](10) NOT NULL,
[TaskCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_TemplateCategoryTask] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[TemplateCode] ASC,
[CategoryCode] ASC,
[TaskCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tmp_TemplateTaskParty] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tmp_TemplateTaskParty](
[TenantCode] [nchar](10) NOT NULL,
[TemplateCode] [nchar](10) NOT NULL,
[CategoryCode] [nchar](10) NOT NULL,
[TaskCode] [nchar](10) NOT NULL,
[PartyCode] [nchar](10) NOT NULL,
[InvolvementCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_tmp_TemplateTaskParty] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[TemplateCode] ASC,
[CategoryCode] ASC,
[TaskCode] ASC,
[PartyCode] ASC,
[InvolvementCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[top_Topic] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[top_Topic](
[TenantCode] [nchar](10) NOT NULL,
[TopicCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Topic] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[TopicCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[top_TopicTemplate] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[top_TopicTemplate](
[TenantCode] [nchar](10) NOT NULL,
[TopicCode] [nchar](10) NOT NULL,
[TemplateCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_TopicTemplate] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[TopicCode] ASC,
[TemplateCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tsk_Category] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tsk_Category](
[TenantCode] [nchar](10) NOT NULL,
[CategoryCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Category] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[CategoryCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tsk_InvolvementType] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tsk_InvolvementType](
[InvolvementCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_Involvement] PRIMARY KEY CLUSTERED
(
[InvolvementCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tsk_Task] Script Date: 02/01/2018 4:16:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tsk_Task](
[TenantCode] [nchar](10) NOT NULL,
[CategoryCode] [nchar](10) NOT NULL,
[TaskCode] [nchar](10) NOT NULL,
CONSTRAINT [PK_CategoryTask] PRIMARY KEY CLUSTERED
(
[TenantCode] ASC,
[CategoryCode] ASC,
[TaskCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[prt_Party] WITH CHECK ADD CONSTRAINT [FK_Party_Tenant] FOREIGN KEY([TenantCode])
REFERENCES [dbo].[ten_Tenant] ([TenantCode])
GO
ALTER TABLE [dbo].[prt_Party] CHECK CONSTRAINT [FK_Party_Tenant]
GO
ALTER TABLE [dbo].[prt_Party] WITH CHECK ADD CONSTRAINT [FK_prt_Party_prt_PartyType] FOREIGN KEY([PartyTypeDiscriminator])
REFERENCES [dbo].[prt_PartyType] ([PartyTypeCode])
GO
ALTER TABLE [dbo].[prt_Party] CHECK CONSTRAINT [FK_prt_Party_prt_PartyType]
GO
ALTER TABLE [dbo].[prt_Person] WITH CHECK ADD CONSTRAINT [FK_Party_IsA_Person] FOREIGN KEY([TenantCode], [PartyCode])
REFERENCES [dbo].[prt_Party] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[prt_Person] CHECK CONSTRAINT [FK_Party_IsA_Person]
GO
ALTER TABLE [dbo].[prt_Team] WITH CHECK ADD CONSTRAINT [FK_Party_IsA_Team] FOREIGN KEY([TenantCode], [PartyCode])
REFERENCES [dbo].[prt_Party] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[prt_Team] CHECK CONSTRAINT [FK_Party_IsA_Team]
GO
ALTER TABLE [dbo].[prt_TeamChildTeam] WITH CHECK ADD CONSTRAINT [FK_TeamChildTeam_Team_Child] FOREIGN KEY([TenantCode], [ChildTeamPartyCode])
REFERENCES [dbo].[prt_Team] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[prt_TeamChildTeam] CHECK CONSTRAINT [FK_TeamChildTeam_Team_Child]
GO
ALTER TABLE [dbo].[prt_TeamChildTeam] WITH CHECK ADD CONSTRAINT [FK_TeamChildTeam_Team_Parent] FOREIGN KEY([TenantCode], [ParentTeamPartyCode])
REFERENCES [dbo].[prt_Team] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[prt_TeamChildTeam] CHECK CONSTRAINT [FK_TeamChildTeam_Team_Parent]
GO
ALTER TABLE [dbo].[prt_TeamMember] WITH CHECK ADD CONSTRAINT [FK_TeamMember_Person] FOREIGN KEY([TenantCode], [PersronPartyCode])
REFERENCES [dbo].[prt_Person] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[prt_TeamMember] CHECK CONSTRAINT [FK_TeamMember_Person]
GO
ALTER TABLE [dbo].[prt_TeamMember] WITH CHECK ADD CONSTRAINT [FK_TeamMember_Team] FOREIGN KEY([TenantCode], [TeamPartyCode])
REFERENCES [dbo].[prt_Team] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[prt_TeamMember] CHECK CONSTRAINT [FK_TeamMember_Team]
GO
ALTER TABLE [dbo].[prt_Vendor] WITH CHECK ADD CONSTRAINT [FK_Party_IsA_Vendor] FOREIGN KEY([TenantCode], [PartyCode])
REFERENCES [dbo].[prt_Party] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[prt_Vendor] CHECK CONSTRAINT [FK_Party_IsA_Vendor]
GO
ALTER TABLE [dbo].[tmp_Template] WITH CHECK ADD CONSTRAINT [FK_Template_Tenant] FOREIGN KEY([TenantCode])
REFERENCES [dbo].[ten_Tenant] ([TenantCode])
GO
ALTER TABLE [dbo].[tmp_Template] CHECK CONSTRAINT [FK_Template_Tenant]
GO
ALTER TABLE [dbo].[tmp_TemplateTask] WITH CHECK ADD CONSTRAINT [FK_TemplateCategoryTask_CategoryTask] FOREIGN KEY([TenantCode], [CategoryCode], [TaskCode])
REFERENCES [dbo].[tsk_Task] ([TenantCode], [CategoryCode], [TaskCode])
GO
ALTER TABLE [dbo].[tmp_TemplateTask] CHECK CONSTRAINT [FK_TemplateCategoryTask_CategoryTask]
GO
ALTER TABLE [dbo].[tmp_TemplateTask] WITH CHECK ADD CONSTRAINT [FK_TemplateCategoryTask_Template] FOREIGN KEY([TenantCode], [TemplateCode])
REFERENCES [dbo].[tmp_Template] ([TenantCode], [TemplateCode])
GO
ALTER TABLE [dbo].[tmp_TemplateTask] CHECK CONSTRAINT [FK_TemplateCategoryTask_Template]
GO
ALTER TABLE [dbo].[tmp_TemplateTaskParty] WITH CHECK ADD CONSTRAINT [FK_tmp_TemplateTaskParty_prt_Party] FOREIGN KEY([TenantCode], [PartyCode])
REFERENCES [dbo].[prt_Party] ([TenantCode], [PartyCode])
GO
ALTER TABLE [dbo].[tmp_TemplateTaskParty] CHECK CONSTRAINT [FK_tmp_TemplateTaskParty_prt_Party]
GO
ALTER TABLE [dbo].[tmp_TemplateTaskParty] WITH CHECK ADD CONSTRAINT [FK_tmp_TemplateTaskParty_tmp_TemplateTask] FOREIGN KEY([TenantCode], [TemplateCode], [CategoryCode], [TaskCode])
REFERENCES [dbo].[tmp_TemplateTask] ([TenantCode], [TemplateCode], [CategoryCode], [TaskCode])
GO
ALTER TABLE [dbo].[tmp_TemplateTaskParty] CHECK CONSTRAINT [FK_tmp_TemplateTaskParty_tmp_TemplateTask]
GO
ALTER TABLE [dbo].[tmp_TemplateTaskParty] WITH CHECK ADD CONSTRAINT [FK_tmp_TemplateTaskParty_tsk_InvolvementType] FOREIGN KEY([InvolvementCode])
REFERENCES [dbo].[tsk_InvolvementType] ([InvolvementCode])
GO
ALTER TABLE [dbo].[tmp_TemplateTaskParty] CHECK CONSTRAINT [FK_tmp_TemplateTaskParty_tsk_InvolvementType]
GO
ALTER TABLE [dbo].[top_Topic] WITH CHECK ADD CONSTRAINT [FK_Topic_Tenant] FOREIGN KEY([TenantCode])
REFERENCES [dbo].[ten_Tenant] ([TenantCode])
GO
ALTER TABLE [dbo].[top_Topic] CHECK CONSTRAINT [FK_Topic_Tenant]
GO
ALTER TABLE [dbo].[top_TopicTemplate] WITH CHECK ADD CONSTRAINT [FK_TopicTemplate_Template] FOREIGN KEY([TenantCode], [TemplateCode])
REFERENCES [dbo].[tmp_Template] ([TenantCode], [TemplateCode])
GO
ALTER TABLE [dbo].[top_TopicTemplate] CHECK CONSTRAINT [FK_TopicTemplate_Template]
GO
ALTER TABLE [dbo].[top_TopicTemplate] WITH CHECK ADD CONSTRAINT [FK_TopicTemplate_Topic] FOREIGN KEY([TenantCode], [TopicCode])
REFERENCES [dbo].[top_Topic] ([TenantCode], [TopicCode])
GO
ALTER TABLE [dbo].[top_TopicTemplate] CHECK CONSTRAINT [FK_TopicTemplate_Topic]
GO
ALTER TABLE [dbo].[tsk_Category] WITH CHECK ADD CONSTRAINT [FK_Category_Tenant] FOREIGN KEY([TenantCode])
REFERENCES [dbo].[ten_Tenant] ([TenantCode])
GO
ALTER TABLE [dbo].[tsk_Category] CHECK CONSTRAINT [FK_Category_Tenant]
GO
ALTER TABLE [dbo].[tsk_Task] WITH CHECK ADD CONSTRAINT [FK_CategoryTask_Category] FOREIGN KEY([TenantCode], [CategoryCode])
REFERENCES [dbo].[tsk_Category] ([TenantCode], [CategoryCode])
GO
ALTER TABLE [dbo].[tsk_Task] CHECK CONSTRAINT [FK_CategoryTask_Category]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'prt_Person', @level2type=N'CONSTRAINT',@level2name=N'FK_Party_IsA_Person'
GO
USE [master]
GO
ALTER DATABASE [OpenRACI] SET READ_WRITE
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment