私はC#でプログラムを持ち、SQLサーバーを使用する新しいプロジェクトで作業を開始しました。 データベースはもう少し複雑になり始めていますが、まだ心配することはありませんが、昨日私はStack Overflowのどこかでテーブルを関連付ける新しい方法を見つけました。REFERENCE wordのSQLが異なる動作
表A
CREATE TABLE tableA (
Id int NOT NULL IDENTITY(1,1),
name varchar(50),
CONSTRAINT tablea_pk PRIMARY KEY (Id))
表B
CREATE TABLE tableB (
Id int NOT NULL IDENTITY(1,1),
name varchar(50),
idA int NOT NULL REFERENCES TableA(Id) ON DELETE CASCADE,
CONSTRAINT tableB_pk PRIMARY KEY (Id))
表C
CREATE TABLE tableC (
Id int NOT NULL IDENTITY(1,1),
name varchar(50),
idB int NOT NULL,
CONSTRAINT tableC_fk_tableB FOREIGN KEY(idB)
REFERENCES tableB(Id)
ON DELETE CASCADE)
Iはcreatiの両方の方法を疑います参照はまったく同じですが、唯一の違いは、テーブルBに参照を作成するときに外部キーの制約名を指定しないため、外部キーの名前がランダムに生成されるためです。
SELECT * FROM sysobjects WHERE name LIKE '%FK%'
質問は以下のとおりです。両方とも参照するには、まったく同じように動作しますか?制約Foreign Keyを作成した場合と同じですか...または列の定義行からPKを参照していますか?
これはSQLサーバーでのみ行うことができるのか、それともSQLの一般的なものなのかわかりませんが、Googleでその情報を見つけようとしましたが、私には運がありませんでした私は