Table of Contents

Class ObjectSchema.ForeignKey

Namespace
LinqToDB.Tools.DataProvider.SqlServer.Schemas
Assembly
linq2db.Tools.dll

sys.foreign_keys (Transact-SQL)

Applies to: √ SQL Server (all supported versions) √ Azure SQL Database √ Azure SQL Managed Instance √ Azure Synapse Analytics √ Analytics Platform System (PDW)

Contains a row per object that is a FOREIGN KEY constraint, with sys.object.type = F.


See sys.foreign_keys.

[Table(Schema = "sys", Name = "foreign_keys", IsView = true)]
public class ObjectSchema.ForeignKey
Inheritance
ObjectSchema.ForeignKey
Extension Methods

Properties

CreateDate

Date the object was created.

[Column("create_date")]
[NotNull]
public DateTime CreateDate { get; set; }

Property Value

DateTime

DeleteReferentialAction

The referential action that was declared for this FOREIGN KEY when a delete happens.

0 = No action

1 = Cascade

2 = Set null

3 = Set default

[Column("delete_referential_action")]
[Nullable]
public byte? DeleteReferentialAction { get; set; }

Property Value

byte?

DeleteReferentialActionDesc

Description of the referential action that was declared for this FOREIGN KEY when a delete occurs:

NO_ACTION

CASCADE

SET_NULL

SET_DEFAULT

[Column("delete_referential_action_desc")]
[Nullable]
public string? DeleteReferentialActionDesc { get; set; }

Property Value

string

IsDisabled

FOREIGN KEY constraint is disabled.

[Column("is_disabled")]
[NotNull]
public bool IsDisabled { get; set; }

Property Value

bool

IsMSShipped

Object is created by an internal SQL Server component.

[Column("is_ms_shipped")]
[NotNull]
public bool IsMSShipped { get; set; }

Property Value

bool

IsNotForReplication

FOREIGN KEY constraint was created by using the NOT FOR REPLICATION option.

[Column("is_not_for_replication")]
[NotNull]
public bool IsNotForReplication { get; set; }

Property Value

bool

IsNotTrusted

FOREIGN KEY constraint has not been verified by the system.

[Column("is_not_trusted")]
[NotNull]
public bool IsNotTrusted { get; set; }

Property Value

bool

IsPublished

Object is published.

[Column("is_published")]
[NotNull]
public bool IsPublished { get; set; }

Property Value

bool

IsSchemaPublished

Only the schema of the object is published.

[Column("is_schema_published")]
[NotNull]
public bool IsSchemaPublished { get; set; }

Property Value

bool

IsSystemNamed

1 = Name was generated by the system.

0 = Name was supplied by the user.

[Column("is_system_named")]
[NotNull]
public bool IsSystemNamed { get; set; }

Property Value

bool

KeyIndexID

ID of the key index within the referenced object.

[Column("key_index_id")]
[Nullable]
public int? KeyIndexID { get; set; }

Property Value

int?

ModifyDate

Date the object was last modified by using an ALTER statement. If the object is a table or a view, modify_date also changes when an index on the table or view is created or altered.

[Column("modify_date")]
[NotNull]
public DateTime ModifyDate { get; set; }

Property Value

DateTime

Name

Object name.

[Column("name")]
[NotNull]
public string Name { get; set; }

Property Value

string

Object

objects (sys.objects)

[Association(ThisKey = "ObjectID", OtherKey = "ObjectID", CanBeNull = false)]
public ObjectSchema.Object Object { get; set; }

Property Value

ObjectSchema.Object

ObjectID

Object identification number. Is unique within a database.

[Column("object_id")]
[NotNull]
public int ObjectID { get; set; }

Property Value

int

ParentObjectID

ID of the object to which this object belongs.

0 = Not a child object.

[Column("parent_object_id")]
[NotNull]
public int ParentObjectID { get; set; }

Property Value

int

PrincipalID

ID of the individual owner, if different from the schema owner. By default, schema-contained objects are owned by the schema owner. However, an alternate owner can be specified by using the ALTER AUTHORIZATION statement to change ownership.

Is NULL if there is no alternate individual owner.

Is NULL if the object type is one of the following:

C = CHECK constraint

D = DEFAULT (constraint or stand-alone)

F = FOREIGN KEY constraint

PK = PRIMARY KEY constraint

R = Rule (old-style, stand-alone)

TA = Assembly (CLR-integration) trigger

TR = SQL trigger

UQ = UNIQUE constraint

EC = Edge constraint

[Column("principal_id")]
[Nullable]
public int? PrincipalID { get; set; }

Property Value

int?

ReferencedObjectID

ID of the referenced object.

[Column("referenced_object_id")]
[Nullable]
public int? ReferencedObjectID { get; set; }

Property Value

int?

SchemaID

ID of the schema that the object is contained in.

Schema-scoped system objects are always contained in the sys or INFORMATION_SCHEMA schemas.

[Column("schema_id")]
[NotNull]
public int SchemaID { get; set; }

Property Value

int

TypeColumn

Object type:

AF = Aggregate function (CLR)

C = CHECK constraint

D = DEFAULT (constraint or stand-alone)

F = FOREIGN KEY constraint

FN = SQL scalar function

FS = Assembly (CLR) scalar-function

FT = Assembly (CLR) table-valued function

IF = SQL inline table-valued function

IT = Internal table

P = SQL Stored Procedure

PC = Assembly (CLR) stored-procedure

PG = Plan guide

PK = PRIMARY KEY constraint

R = Rule (old-style, stand-alone)

RF = Replication-filter-procedure

S = System base table

SN = Synonym

SO = Sequence object

U = Table (user-defined)

V = View

EC = Edge constraint



Applies to: SQL Server 2012 (11.x) and later.

SQ = Service queue

TA = Assembly (CLR) DML trigger

TF = SQL table-valued-function

TR = SQL DML trigger

TT = Table type

UQ = UNIQUE constraint

X = Extended stored procedure



Applies to: SQL Server 2014 (12.x) and later, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW).

ST = STATS_TREE



Applies to: SQL Server 2016 (13.x) and later, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW).

ET = External Table

[Column("type")]
[Nullable]
public string? TypeColumn { get; set; }

Property Value

string

TypeDesc

Description of the object type:

AGGREGATE_FUNCTION

CHECK_CONSTRAINT

CLR_SCALAR_FUNCTION

CLR_STORED_PROCEDURE

CLR_TABLE_VALUED_FUNCTION

CLR_TRIGGER

DEFAULT_CONSTRAINT

EXTENDED_STORED_PROCEDURE

FOREIGN_KEY_CONSTRAINT

INTERNAL_TABLE

PLAN_GUIDE

PRIMARY_KEY_CONSTRAINT

REPLICATION_FILTER_PROCEDURE

RULE

SEQUENCE_OBJECT



Applies to: SQL Server 2012 (11.x) and later.

SERVICE_QUEUE

SQL_INLINE_TABLE_VALUED_FUNCTION

SQL_SCALAR_FUNCTION

SQL_STORED_PROCEDURE

SQL_TABLE_VALUED_FUNCTION

SQL_TRIGGER

SYNONYM

SYSTEM_TABLE

TABLE_TYPE

UNIQUE_CONSTRAINT

USER_TABLE

VIEW

[Column("type_desc")]
[Nullable]
public string? TypeDesc { get; set; }

Property Value

string

UpdateReferentialAction

The referential action that was declared for this FOREIGN KEY when an update happens.

0 = No action

1 = Cascade

2 = Set null

3 = Set default

[Column("update_referential_action")]
[Nullable]
public byte? UpdateReferentialAction { get; set; }

Property Value

byte?

UpdateReferentialActionDesc

Description of the referential action that was declared for this FOREIGN KEY when an update happens:

NO_ACTION

CASCADE

SET_NULL

SET_DEFAULT

[Column("update_referential_action_desc")]
[Nullable]
public string? UpdateReferentialActionDesc { get; set; }

Property Value

string