SQL Изменяется: добавить несколько FKs?

Отсюда

ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(SID); 

Как я добавляю несколько ключей с SQL Server? Это - что-то как ниже? (Я наклоняюсь, тестируют ATM, и к сожалению у меня нет способа протестировать запросы, если я не выполняю его через код),

ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(SID), 
ADD FOREIGN KEY (customer_sid2) REFERENCES CUSTOMER(SID2);

или похож на это

ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid, customer_sid2) REFERENCES CUSTOMER(SID, SID2)

6
задан Vini.g.fer 3 August 2016 в 21:08
поделиться

2 ответа

Второй блок кода из вашего вопроса:

ALTER TABLE ORDERS 
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(SID),  
ADD FOREIGN KEY (customer_sid2) REFERENCES CUSTOMER(SID2); 

позаботится о том, что вы пытаетесь сделать.

6
ответ дан 10 December 2019 в 00:35
поделиться

Вот sql, сгенерированный sqlserver'ом после того, как я использовал диаграмму базы данных для создания внешнего ключа. Их подход заключается в том, что сначала выполняется одно изменение таблицы для одного внешнего ключа

USE [TimeSheet]
GO
/****** Object:  Table [dbo].[WeekTasks]    Script Date: 05/19/2010 20:09:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WeekTasks](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [WeekID] [int] NOT NULL,
    [TaskDescription] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [ProjectID] [int] NOT NULL
 CONSTRAINT [PK_WeekTasks] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[WeekTasks]  WITH CHECK ADD  CONSTRAINT [FK_WeekTasks_Projects] FOREIGN KEY([ProjectID])
REFERENCES [dbo].[Projects] ([ID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[WeekTasks] CHECK CONSTRAINT [FK_WeekTasks_Projects]
GO
ALTER TABLE [dbo].[WeekTasks]  WITH CHECK ADD  CONSTRAINT [FK_WeekTasks_WeekTimeSheet] FOREIGN KEY([WeekID])
REFERENCES [dbo].[WeekTimeSheet] ([ID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[WeekTasks] CHECK CONSTRAINT [FK_WeekTasks_WeekTimeSheet]
0
ответ дан 10 December 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: