Как установить (объединить) два первичных ключа в таблице
для небольшого приложения, связанного с продажами, мы разработали базу данных с использованием логической модели данных. Вышла на сцену, чтобы преобразовать в физическую модель. При создании таблицы в SQL Server Management Studio Express в соответствии с нашей логической моделью данных нам необходимо объединить два атрибута для формирования уникального идентификатора. Можно ли объединить два первичных ключа и установить его?
но, наблюдая образец Нортвинда, мы обнаружили, что в ORDER DETAILS
таблица, мы видим два первичных ключа Order Id
& Product Id
. По таблице правил не может быть двух первичных ключей. Так как это случилось в Нортвинде?
в моем случае, как я должен установить два столбца в моей таблице, чтобы сделать его двумя первичными ключами?
кто-то дал предложение как
сделать два первичных ключа, откройте таблицу в режиме конструктора и нажмите кнопку на два обязательных поля и удерживая CTL, примените первичный ключ
будет ли это работать ??
изменить ;
Теперь у моей таблицы есть 2 ПК в SSMS . это действительно или это просто комбинация 2 pks
4 ответов
самый простой способ-использовать команду T-SQL в SSMS Express, а не пытаться использовать визуальные конструкторы.....
после того, как вы разработали и создали свою таблицу, попробуйте что-то вроде этого:
ALTER TABLE dbo.YourTableNameHere
ADD CONSTRAINT PK_YourTableNameHere
PRIMARY KEY(Item_Id, Purchase_Id)
нельзя создать два первичных ключа в таблице. Вы можете объединить два столбца в таблице и сделать как один первичный ключ
create table table1
(
col1 int,
col2 varchar(20),
....
Primary key (col1, col2)
)
вы не можете иметь 2 первичных ключа, но вы можете иметь составной первичный ключ, который является ключом из двух столбцов, что именно то, что вы получили в таблице [SalesOrderDetail] с [SalesOrderID] и [SalesOrderDetailID]
CREATE TABLE [dbo].[tab2](
[col1] [int] NOT NULL,
[col2] [int] NOT NULL,
[col3] [nchar](10) NOT NULL,
[col4] [nchar](10) NOT NULL,
CONSTRAINT [PK_tab2] PRIMARY KEY CLUSTERED
(
[col1] ASC,
[col2] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]