Tables [dbo].[PersonnelDocument]
Properties
PropertyValue
CollationSQL_Latin1_General_CP1_CI_AS
Row Count (~)0
Created8:30:43 AM Friday, December 7, 2018
Last Modified9:01:35 AM Friday, November 22, 2024
Columns
NameData TypeMax Length (Bytes)Allow NullsIdentityDefault
Cluster Primary Key PK_PersonnelDocument: PersonnelDocumentIDPersonnelDocumentIDint4
No
1 - 1
Foreign Keys FK_PersonnelDocument_SysUser: [dbo].[Sysuser].PersonnelFIDIndexes IX_PersonnelDocument_PersonnelFID: PersonnelFIDPersonnelFIDint4
No
DocumentNamevarchar(128)128
No
Foreign Keys FK_PersonnelDocument_SysUser2: [dbo].[Sysuser].AttachedByFIDIndexes IX_PersonnelDocument_AttachedByFID: AttachedByFIDAttachedByFIDint4
No
AttachedOndatetime8
No
LastModifieddatetime8
No
ExternalImageFIDint4
No
Foreign Keys FK_PersonnelDocument_PersonnelDocumentType: [dbo].[PersonnelDocumentType].PersonnelDocumentTypeFIDPersonnelDocumentTypeFIDint4
No
DocumentDescriptionvarchar(64)64
Yes
DocumentNotesvarchar(256)256
Yes
Inactivebit1
No
((0))
Indexes Indexes
NameColumnsUnique
Cluster Primary Key PK_PersonnelDocument: PersonnelDocumentIDPK_PersonnelDocumentPersonnelDocumentID
Yes
IX_PersonnelDocument_AttachedByFIDAttachedByFID
IX_PersonnelDocument_PersonnelFIDPersonnelFID
Triggers Triggers
NameANSI Nulls OnQuoted Identifier OnOn
PersonnelDocumentDeleted
Yes
Yes
After Delete
Foreign Keys Foreign Keys
NameColumns
FK_PersonnelDocument_SysUser2AttachedByFID->[dbo].[Sysuser].[SysUserID]
FK_PersonnelDocument_PersonnelDocumentTypePersonnelDocumentTypeFID->[dbo].[PersonnelDocumentType].[PersonnelDocumentTypeID]
FK_PersonnelDocument_SysUserPersonnelFID->[dbo].[Sysuser].[SysUserID]
Permissions
TypeActionOwning Principal
GrantDeleteMssExec
GrantInsertMssExec
GrantSelectMssExec
GrantUpdateMssExec
SQL Script
CREATE TABLE [dbo].[PersonnelDocument]
(
[PersonnelDocumentID] [int] NOT NULL IDENTITY(1, 1),
[PersonnelFID] [int] NOT NULL,
[DocumentName] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[AttachedByFID] [int] NOT NULL,
[AttachedOn] [datetime] NOT NULL,
[LastModified] [datetime] NOT NULL,
[ExternalImageFID] [int] NOT NULL,
[PersonnelDocumentTypeFID] [int] NOT NULL,
[DocumentDescription] [varchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DocumentNotes] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Inactive] [bit] NOT NULL CONSTRAINT [DF_PersonnelDocument_Inactive] DEFAULT ((0))
) ON [PRIMARY]
GO

-- Deletes any documents that are stored in the external document db that are linked to PersonnelDocuments getting deleted
create trigger [dbo].[PersonnelDocumentDeleted] on [dbo].[PersonnelDocument]
after delete as
set nocount on
    declare @theExternalDocumentImageIDs IntList

    insert into @theExternalDocumentImageIDs
    select deleted.ExternalImageFID
    from deleted
    where deleted.ExternalImageFID is not null
    
    if( 0 < ( select count(*) from @theExternalDocumentImageIDs ) )
    begin
        declare @theDocDBName sysname  
        set @theDocDBName = dbo.GetDocDbName()
        declare @theDeleteCommand nvarchar(max)


        set @theDeleteCommand =
        'delete ' + @theDocDBName + '..DocumentImage ' +
        'from @inExternalDocumentImageIDs theExternalDocumentImageIDs ' +
        'inner join ' + @theDocDBName + '..DocumentImage DocumentImage on theExternalDocumentImageIDs.Item = DocumentImage.DocumentImageID '

        exec sp_executesql @theDeleteCommand, N'@inExternalDocumentImageIDs IntList readonly', @theExternalDocumentImageIDs

    end
GO
ALTER TABLE [dbo].[PersonnelDocument] ADD CONSTRAINT [PK_PersonnelDocument] PRIMARY KEY CLUSTERED  ([PersonnelDocumentID]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_PersonnelDocument_AttachedByFID] ON [dbo].[PersonnelDocument] ([AttachedByFID]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_PersonnelDocument_PersonnelFID] ON [dbo].[PersonnelDocument] ([PersonnelFID]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[PersonnelDocument] ADD CONSTRAINT [FK_PersonnelDocument_SysUser2] FOREIGN KEY ([AttachedByFID]) REFERENCES [dbo].[Sysuser] ([SysUserID])
GO
ALTER TABLE [dbo].[PersonnelDocument] ADD CONSTRAINT [FK_PersonnelDocument_PersonnelDocumentType] FOREIGN KEY ([PersonnelDocumentTypeFID]) REFERENCES [dbo].[PersonnelDocumentType] ([PersonnelDocumentTypeID])
GO
ALTER TABLE [dbo].[PersonnelDocument] ADD CONSTRAINT [FK_PersonnelDocument_SysUser] FOREIGN KEY ([PersonnelFID]) REFERENCES [dbo].[Sysuser] ([SysUserID])
GO
GRANT SELECT ON  [dbo].[PersonnelDocument] TO [MssExec]
GRANT INSERT ON  [dbo].[PersonnelDocument] TO [MssExec]
GRANT DELETE ON  [dbo].[PersonnelDocument] TO [MssExec]
GRANT UPDATE ON  [dbo].[PersonnelDocument] TO [MssExec]
GO
Uses