Sql server SQL Alter:添加多个FK?

Sql server SQL Alter:添加多个FK?,sql-server,Sql Server,如何使用SQL Server添加多个密钥?是不是像下面这样?(我无法测试ATM,不幸的是,除非通过代码运行,否则我无法测试查询) 还是像这样 ALTER TABLE ORDERS ADD FOREIGN KEY (customer_sid, customer_sid2) REFERENCES CUSTOMER(SID, SID2) 问题的第二个代码块: ALTER TABLE ORDERS ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(

如何使用SQL Server添加多个密钥?是不是像下面这样?(我无法测试ATM,不幸的是,除非通过代码运行,否则我无法测试查询)

还是像这样

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

问题的第二个代码块:

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

将负责您尝试执行的操作。

以下是sqlserver在使用数据库关系图绘制外键后生成的sql。他们的方法是用一个表替换一个外键

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]
更改表格顺序
添加外键(customer_sid)引用customer(sid),
外键(customer_sid2)引用customer(sid2),
外键(customer_sid3)引用客户(sid3);

谢谢,上面的答案对我不起作用。确实如此。
ALTER TABLE ORDERS 
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(SID),  
ADD FOREIGN KEY (customer_sid2) REFERENCES CUSTOMER(SID2); 
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]