Artikel ini menyajikan sebelas pendekatan berbeda untuk mengambil informasi kunci asing di SQL Server. Beberapa di antaranya akan lebih berguna daripada yang lain, tergantung pada situasinya.
Beberapa metode ini dapat dimodifikasi untuk mengembalikan informasi lebih lanjut. Misalnya, Anda dapat melakukan penggabungan pada berbagai tampilan sistem untuk mengembalikan lebih banyak data.
Contoh 1 – Prosedur Tersimpan Sistem sp_fkeys
sp_fkeys
prosedur tersimpan sistem mengembalikan informasi kunci asing logis untuk lingkungan saat ini. Ini menunjukkan hubungan kunci asing termasuk kunci asing yang dinonaktifkan.
Prosedur tersimpan ini sangat ideal ketika Anda membutuhkan informasi kunci asing untuk tabel tertentu. Anda cukup meneruskan nama tabel kunci utama atau asing ke prosedur, dan itu akan mengembalikan info yang relevan.
Contoh:
EXEC sp_fkeys @fktable_name = Albums;
Hasil (menggunakan keluaran vertikal):
-[ RECORD 1 ]------------------------- PKTABLE_QUALIFIER | Music PKTABLE_OWNER | dbo PKTABLE_NAME | Artists PKCOLUMN_NAME | ArtistId FKTABLE_QUALIFIER | Music FKTABLE_OWNER | dbo FKTABLE_NAME | Albums FKCOLUMN_NAME | ArtistId KEY_SEQ | 1 UPDATE_RULE | 1 DELETE_RULE | 1 FK_NAME | FK_Albums_Artists PK_NAME | PK__Artists__25706B50FCD918B1 DEFERRABILITY | 7 -[ RECORD 2 ]------------------------- PKTABLE_QUALIFIER | Music PKTABLE_OWNER | dbo PKTABLE_NAME | Genres PKCOLUMN_NAME | GenreId FKTABLE_QUALIFIER | Music FKTABLE_OWNER | dbo FKTABLE_NAME | Albums FKCOLUMN_NAME | GenreId KEY_SEQ | 1 UPDATE_RULE | 1 DELETE_RULE | 1 FK_NAME | FK_Albums_Genres PK_NAME | PK__Genres__0385057E88BB96F8 DEFERRABILITY | 7
Cara lain untuk menggunakan tampilan ini adalah dengan memberikan nama tabel kunci utama:
EXEC sp_fkeys @pktable_name = Artists;
Hasil (menggunakan keluaran vertikal):
-[ RECORD 1 ]------------------------- PKTABLE_QUALIFIER | Music PKTABLE_OWNER | dbo PKTABLE_NAME | Artists PKCOLUMN_NAME | ArtistId FKTABLE_QUALIFIER | Music FKTABLE_OWNER | dbo FKTABLE_NAME | Albums FKCOLUMN_NAME | ArtistId KEY_SEQ | 1 UPDATE_RULE | 1 DELETE_RULE | 1 FK_NAME | FK_Albums_Artists PK_NAME | PK__Artists__25706B50FCD918B1 DEFERRABILITY | 7
Anda juga dapat menggunakan argumen lain, seperti pemilik tabel dan penentu tabel:
EXEC sp_fkeys @pktable_name = Artists, @pktable_owner = dbo, @pktable_qualifier = Music, @fktable_name = Albums, @fktable_owner = dbo, @fktable_qualifier = Music;
Contoh 2 – Tampilan Sistem REFERENTIAL_CONSTRAINTS
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
tampilan sistem mengembalikan satu baris untuk setiap FOREIGN KEY
kendala dalam database saat ini.
Ini sangat ideal untuk mengembalikan daftar kunci asing dalam database dengan cepat bersama dengan batasan unik yang terkait. Anda tidak terbatas hanya pada satu tabel seperti pada contoh sebelumnya.
Ini contohnya:
SELECT CONSTRAINT_NAME, UNIQUE_CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
Hasil:
+-------------------+-------------------------------+ | CONSTRAINT_NAME | UNIQUE_CONSTRAINT_NAME | |-------------------+-------------------------------| | FK_Albums_Artists | PK__Artists__25706B50FCD918B1 | | FK_Albums_Genres | PK__Genres__0385057E88BB96F8 | +-------------------+-------------------------------+
Jadi dalam hal ini kita dapat melihat setiap kunci asing dalam database saat ini, bersama dengan kunci utama yang terkait.
Ternyata, database ini hanya memiliki dua kunci asing dan kunci tersebut sama dengan yang kita lihat pada contoh sebelumnya.
Berikut adalah contoh yang mengembalikan semua data untuk FK_Albums_Artists kunci asing:
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME = 'FK_Albums_Artists';
Hasil:
CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Artists UNIQUE_CONSTRAINT_CATALOG | Music UNIQUE_CONSTRAINT_SCHEMA | dbo UNIQUE_CONSTRAINT_NAME | PK__Artists__25706B50FCD918B1 MATCH_OPTION | SIMPLE UPDATE_RULE | NO ACTION DELETE_RULE | NO ACTION
Anda akan melihat bahwa metode ini tidak memberikan detail tabel kunci utama dan asing yang Anda dapatkan dengan metode sebelumnya, jadi Anda perlu melakukan beberapa penggabungan dengan tampilan lain jika Anda memerlukan informasi itu (atau gunakan salah satu metode di bawah).
Contoh 3 – Tampilan Sistem KEY_COLUMN_USAGE
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
tampilan sistem mengembalikan satu baris untuk setiap kolom yang dibatasi sebagai kunci dalam database saat ini.
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE;
Hasil:
+--------------+---------------+-------------------------------+ | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | |--------------+---------------+-------------------------------| | Albums | ArtistId | FK_Albums_Artists | | Albums | GenreId | FK_Albums_Genres | | Albums | AlbumId | PK__Albums__97B4BE379FC780BD | | Artists | ArtistId | PK__Artists__25706B50FCD918B1 | | Genres | GenreId | PK__Genres__0385057E88BB96F8 | +--------------+---------------+-------------------------------+
Kita dapat melihat bahwa ini mengembalikan semua batasan, termasuk kunci utama.
Kami juga dapat menambahkan WHERE
klausa untuk mempersempit hasil ke tabel tertentu.
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'Albums';
Hasil:
+--------------+---------------+------------------------------+ | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | |--------------+---------------+------------------------------| | Albums | ArtistId | FK_Albums_Artists | | Albums | GenreId | FK_Albums_Genres | | Albums | AlbumId | PK__Albums__97B4BE379FC780BD | +--------------+---------------+------------------------------+
Dalam contoh ini, saya mempersempit hasil menjadi hanya kolom tampilan yang saya minati, tetapi Anda juga dapat menggunakan tanda bintang (*
) wildcard untuk mengembalikan semua kolom.
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'Albums';
Hasil (menggunakan keluaran vertikal):
-[ RECORD 1 ]------------------------- CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Artists TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums COLUMN_NAME | ArtistId ORDINAL_POSITION | 1 -[ RECORD 2 ]------------------------- CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Genres TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums COLUMN_NAME | GenreId ORDINAL_POSITION | 1 -[ RECORD 3 ]------------------------- CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | PK__Albums__97B4BE379FC780BD TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums COLUMN_NAME | AlbumId ORDINAL_POSITION | 1
Contoh 4 – Tampilan Sistem CONSTRAINT_COLUMN_USAGE
Ini mirip dengan contoh sebelumnya. INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
tampilan sistem mengembalikan satu baris untuk setiap kolom dalam database saat ini yang memiliki batasan yang ditentukan pada kolom.
Seperti INFORMATION_SCHEMA.KEY_COLUMN_USAGE
Anda juga akan mendapatkan kunci utama yang dikembalikan dengan tampilan ini. Namun, INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
tidak terbatas pada batasan utama saja.
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;
Hasil:
+--------------+---------------+-------------------------------+ | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | |--------------+---------------+-------------------------------| | Albums | ArtistId | FK_Albums_Artists | | Albums | GenreId | FK_Albums_Genres | | Albums | AlbumId | PK__Albums__97B4BE379FC780BD | | Artists | ArtistId | PK__Artists__25706B50FCD918B1 | | Genres | GenreId | PK__Genres__0385057E88BB96F8 | +--------------+---------------+-------------------------------+
Anda dapat menggunakan WHERE
klausa untuk mengembalikan hanya tabel atau kolom tertentu:
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE COLUMN_NAME = 'ArtistId';
Hasil:
+--------------+---------------+-------------------------------+ | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME | |--------------+---------------+-------------------------------| | Albums | ArtistId | FK_Albums_Artists | | Artists | ArtistId | PK__Artists__25706B50FCD918B1 | +--------------+---------------+-------------------------------+
Dalam hal ini saya menentukan nama kolom, sehingga mengembalikan semua batasan pada kolom dengan nama itu. Ternyata, database menggunakan nama kolom yang sama di dua tabel yang berbeda. Satu memiliki batasan kunci asing, yang lain kunci utama. Oleh karena itu kedua baris dikembalikan.
Sekali lagi, Anda dapat menggunakan tanda bintang (*
) wildcard untuk mengembalikan semua kolom.
Berikut adalah contoh di mana saya mengembalikan semua data untuk tabel tertentu:
SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME = 'Albums';
Hasil (menggunakan keluaran vertikal):
-[ RECORD 1 ]------------------------- TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums COLUMN_NAME | ArtistId CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Artists -[ RECORD 2 ]------------------------- TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums COLUMN_NAME | GenreId CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Genres -[ RECORD 3 ]------------------------- TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums COLUMN_NAME | AlbumId CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | PK__Albums__97B4BE379FC780BD
Contoh 5 – Tampilan Sistem CONSTRAINT_TABLE_USAGE
INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
tampilan sistem mengembalikan satu baris untuk setiap tabel dalam database saat ini yang memiliki batasan yang ditentukan pada tabel.
SELECT TABLE_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE;
Hasil:
+--------------+-------------------------------+ | TABLE_NAME | CONSTRAINT_NAME | |--------------+-------------------------------| | Artists | PK__Artists__25706B50FCD918B1 | | Genres | PK__Genres__0385057E88BB96F8 | | Albums | PK__Albums__97B4BE379FC780BD | | Albums | FK_Albums_Artists | | Albums | FK_Albums_Genres | +--------------+-------------------------------+
Tampilan ini tidak mengembalikan nama kolom tempat batasan digunakan, jadi mungkin tidak berguna bagi Anda, bergantung pada kebutuhan Anda.
Berikut adalah contoh yang menunjukkan semua data yang dikembalikan oleh tampilan ini untuk Album tabel:
SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE WHERE TABLE_NAME = 'Albums';
Hasil:
-[ RECORD 1 ]------------------------- TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | PK__Albums__97B4BE379FC780BD -[ RECORD 2 ]------------------------- TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Artists -[ RECORD 3 ]------------------------- TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Genres
Contoh 6 – Tampilan Sistem TABLE_CONSTRAINTS
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
tampilan sistem mengembalikan satu baris untuk setiap batasan tabel dalam database saat ini.
SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
Hasil:
+--------------+-------------------------------+-------------------+ | TABLE_NAME | CONSTRAINT_NAME | CONSTRAINT_TYPE | |--------------+-------------------------------+-------------------| | Artists | PK__Artists__25706B50FCD918B1 | PRIMARY KEY | | Genres | PK__Genres__0385057E88BB96F8 | PRIMARY KEY | | Albums | PK__Albums__97B4BE379FC780BD | PRIMARY KEY | | Albums | FK_Albums_Artists | FOREIGN KEY | | Albums | FK_Albums_Genres | FOREIGN KEY | +--------------+-------------------------------+-------------------+
Tampilan ini tidak memberikan nama kolom, tetapi memberikan jenis batasan. Oleh karena itu, Anda dapat mempersempit hasil menjadi hanya kunci asing:
SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'FOREIGN KEY';
Hasil:
+--------------+-------------------+-------------------+ | TABLE_NAME | CONSTRAINT_NAME | CONSTRAINT_TYPE | |--------------+-------------------+-------------------| | Albums | FK_Albums_Artists | FOREIGN KEY | | Albums | FK_Albums_Genres | FOREIGN KEY | +--------------+-------------------+-------------------+
Berikut adalah contoh yang menggunakan karakter pengganti (*
) karakter untuk mengembalikan semua data untuk batasan kunci asing yang diterapkan ke
Album
tabel:
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'Albums' AND CONSTRAINT_TYPE = 'FOREIGN KEY';
Hasil:
-[ RECORD 1 ]------------------------- CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Artists TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums CONSTRAINT_TYPE | FOREIGN KEY IS_DEFERRABLE | NO INITIALLY_DEFERRED | NO -[ RECORD 2 ]------------------------- CONSTRAINT_CATALOG | Music CONSTRAINT_SCHEMA | dbo CONSTRAINT_NAME | FK_Albums_Genres TABLE_CATALOG | Music TABLE_SCHEMA | dbo TABLE_NAME | Albums CONSTRAINT_TYPE | FOREIGN KEY IS_DEFERRABLE | NO INITIALLY_DEFERRED | NO
Contoh 7 – Tampilan Sistem sys.foreign_keys
sys.foreign_keys
tampilan sistem berisi baris per objek yang merupakan FOREIGN KEY
kendala, dengan sys.object.type = F
(“F” adalah untuk “Kunci Asing”).
Contoh:
SELECT name AS 'Constraint', OBJECT_NAME(parent_object_id) AS 'Table', OBJECT_NAME(referenced_object_id) AS 'Referenced Column' FROM sys.foreign_keys;
Hasil:
+-------------------+---------+---------------------+ | Constraint | Table | Referenced Column | |-------------------+---------+---------------------| | FK_Albums_Artists | Albums | Artists | | FK_Albums_Genres | Albums | Genres | +-------------------+---------+---------------------+
Ini dia saat mengembalikan semua data untuk FK_Albums_Artists
kunci asing:
SELECT * FROM sys.foreign_keys WHERE name = 'FK_Albums_Artists';
Hasil:
name | FK_Albums_Artists object_id | 981578535 principal_id | NULL schema_id | 1 parent_object_id | 949578421 type | F type_desc | FOREIGN_KEY_CONSTRAINT create_date | 2019-05-02 12:56:06.380 modify_date | 2019-05-02 12:56:06.380 is_ms_shipped | 0 is_published | 0 is_schema_published | 0 referenced_object_id | 885578193 key_index_id | 1 is_disabled | 0 is_not_for_replication | 0 is_not_trusted | 0 delete_referential_action | 0 delete_referential_action_desc | NO_ACTION update_referential_action | 0 update_referential_action_desc | NO_ACTION is_system_named | 0
Contoh 8 – Tampilan Sistem sys.foreign_key_columns
sys.foreign_key_columns
tampilan sistem berisi baris untuk setiap kolom, atau kumpulan kolom, yang terdiri dari kunci asing.
Contoh:
SELECT OBJECT_NAME(constraint_object_id) AS 'Foreign Key', OBJECT_NAME(parent_object_id) AS 'Table', OBJECT_NAME(referenced_object_id) AS 'Referenced Table' FROM sys.foreign_key_columns;
Hasil:
+--------------------+---------+--------------------+ | Foreign Key | Table | Referenced Table | |--------------------+---------+--------------------| | FK_Albums_Artists | Albums | Artists | | FK_Albums_Genres | Albums | Genres | | FK_Artists_Country | Artists | Country | +--------------------+---------+--------------------+
Dan ini dia saat mengembalikan semua data untuk FK_Albums_Artists
kunci asing:
SELECT * FROM sys.foreign_key_columns WHERE OBJECT_NAME(constraint_object_id) = 'FK_Albums_Artists';
Hasil:
constraint_object_id | 981578535 constraint_column_id | 1 parent_object_id | 949578421 parent_column_id | 4 referenced_object_id | 885578193 referenced_column_id | 1
Contoh 9 – Tampilan Sistem sys.objects
sys.objects
tampilan sistem berisi baris untuk setiap objek cakupan skema yang ditentukan pengguna yang dibuat dalam database. Jadi itu termasuk informasi tentang kunci asing kami.
Contoh:
SELECT OBJECT_NAME(parent_object_id) AS 'Table', name FROM sys.objects WHERE type = 'F';
Hasil:
+---------+-------------------+ | Table | name | |---------+-------------------| | Albums | FK_Albums_Artists | | Albums | FK_Albums_Genres | +---------+-------------------+
Dalam contoh ini saya mempersempit hasilnya menjadi hanya kunci asing (ketik F
).
Berikut adalah contoh yang mengembalikan semua data untuk FK_Albums_Artists kunci asing:
SELECT * FROM sys.objects WHERE name = 'FK_Albums_Artists';
Hasil (menggunakan keluaran vertikal):
-[ RECORD 1 ]------------------------- name | FK_Albums_Artists object_id | 981578535 principal_id | NULL schema_id | 1 parent_object_id | 949578421 type | F type_desc | FOREIGN_KEY_CONSTRAINT create_date | 2019-05-02 12:56:06.380 modify_date | 2019-05-02 12:56:06.380 is_ms_shipped | 0 is_published | 0 is_schema_published | 0
Contoh 10 – Prosedur Tersimpan Sistem sp_helpconstraint
sp_helpconstraint
prosedur tersimpan sistem mengembalikan daftar semua jenis batasan, nama yang ditentukan pengguna atau yang disediakan sistem, kolom di mana mereka telah didefinisikan, dan ekspresi yang mendefinisikan batasan (untuk DEFAULT
dan CHECK
batasan saja).
Oleh karena itu Anda dapat menggunakannya untuk mengembalikan informasi tentang kunci asing di database Anda.
Contoh:
EXEC sp_helpconstraint Albums;
Hasil:
+---------------+ | Object Name | |---------------| | Albums | +---------------+ -[ RECORD 1 ]------------------------- constraint_type | FOREIGN KEY constraint_name | FK_Albums_Artists delete_action | No Action update_action | No Action status_enabled | Enabled status_for_replication | Is_For_Replication constraint_keys | ArtistId -[ RECORD 2 ]------------------------- constraint_type | constraint_name | delete_action | update_action | status_enabled | status_for_replication | constraint_keys | REFERENCES Music.dbo.Artists (ArtistId) -[ RECORD 3 ]------------------------- constraint_type | FOREIGN KEY constraint_name | FK_Albums_Genres delete_action | No Action update_action | No Action status_enabled | Enabled status_for_replication | Is_For_Replication constraint_keys | GenreId -[ RECORD 4 ]------------------------- constraint_type | constraint_name | delete_action | update_action | status_enabled | status_for_replication | constraint_keys | REFERENCES Music.dbo.Genres (GenreId) -[ RECORD 5 ]------------------------- constraint_type | PRIMARY KEY (clustered) constraint_name | PK__Albums__97B4BE379FC780BD delete_action | (n/a) update_action | (n/a) status_enabled | (n/a) status_for_replication | (n/a) constraint_keys | AlbumId
Contoh 11 – Prosedur Tersimpan Sistem sp_help
sp_help
prosedur tersimpan sistem melaporkan informasi tentang objek database (objek apa pun yang terdaftar di sys.sysobjects
tampilan kompatibilitas), tipe data yang ditentukan pengguna, atau tipe data. Ini termasuk informasi tentang kunci asing.
Saat Anda menjalankan ini tanpa argumen apa pun, ini memberikan informasi tentang ringkasan informasi objek dari semua jenis yang ada di database saat ini dikembalikan (yaitu lot informasi).
Namun, Anda bisa memberikan nama tabel, dan itu akan mengembalikan informasi tentang tabel itu. Sekali lagi, Anda akan mendapatkan banyak informasi yang dikembalikan, tetapi di antaranya adalah informasi kunci asing.
Contoh:
EXEC sp_help Albums;
Hasil:
+--------+---------+------------+-------------------------+ | Name | Owner | Type | Created_datetime | |--------+---------+------------+-------------------------| | Albums | dbo | user table | 2019-05-02 12:56:06.370 | +--------+---------+------------+-------------------------+ -[ RECORD 1 ]------------------------- Column_name | AlbumId Type | int Computed | no Length | 4 Prec | 10 Scale | 0 Nullable | no TrimTrailingBlanks | (n/a) FixedLenNullInSource | (n/a) Collation | NULL -[ RECORD 2 ]------------------------- Column_name | AlbumName Type | nvarchar Computed | no Length | 510 Prec | Scale | Nullable | no TrimTrailingBlanks | (n/a) FixedLenNullInSource | (n/a) Collation | SQL_Latin1_General_CP1_CI_AS -[ RECORD 3 ]------------------------- Column_name | ReleaseDate Type | date Computed | no Length | 3 Prec | 10 Scale | 0 Nullable | no TrimTrailingBlanks | (n/a) FixedLenNullInSource | (n/a) Collation | NULL -[ RECORD 4 ]------------------------- Column_name | ArtistId Type | int Computed | no Length | 4 Prec | 10 Scale | 0 Nullable | no TrimTrailingBlanks | (n/a) FixedLenNullInSource | (n/a) Collation | NULL -[ RECORD 5 ]------------------------- Column_name | GenreId Type | int Computed | no Length | 4 Prec | 10 Scale | 0 Nullable | no TrimTrailingBlanks | (n/a) FixedLenNullInSource | (n/a) Collation | NULL +------------+--------+-------------+-----------------------+ | Identity | Seed | Increment | Not For Replication | |------------+--------+-------------+-----------------------| | AlbumId | 1 | 1 | 0 | +------------+--------+-------------+-----------------------+ +-------------------------------+ | RowGuidCol | |-------------------------------| | No rowguidcol column defined. | +-------------------------------+ +-----------------------------+ | Data_located_on_filegroup | |-----------------------------| | PRIMARY | +-----------------------------+ +------------------------------+---------------------------------------------------+--------------+ | index_name | index_description | index_keys | |------------------------------+---------------------------------------------------+--------------| | PK__Albums__97B4BE379FC780BD | clustered, unique, primary key located on PRIMARY | AlbumId | +------------------------------+---------------------------------------------------+--------------+ -[ RECORD 1 ]------------------------- constraint_type | FOREIGN KEY constraint_name | FK_Albums_Artists delete_action | No Action update_action | No Action status_enabled | Enabled status_for_replication | Is_For_Replication constraint_keys | ArtistId -[ RECORD 2 ]------------------------- constraint_type | constraint_name | delete_action | update_action | status_enabled | status_for_replication | constraint_keys | REFERENCES Music.dbo.Artists (ArtistId) -[ RECORD 3 ]------------------------- constraint_type | FOREIGN KEY constraint_name | FK_Albums_Genres delete_action | No Action update_action | No Action status_enabled | Enabled status_for_replication | Is_For_Replication constraint_keys | GenreId -[ RECORD 4 ]------------------------- constraint_type | constraint_name | delete_action | update_action | status_enabled | status_for_replication | constraint_keys | REFERENCES Music.dbo.Genres (GenreId) -[ RECORD 5 ]------------------------- constraint_type | PRIMARY KEY (clustered) constraint_name | PK__Albums__97B4BE379FC780BD delete_action | (n/a) update_action | (n/a) status_enabled | (n/a) status_for_replication | (n/a) constraint_keys | AlbumId