Ответ 1
Подобно этому
create table foo
(
user_id int not null identity,
name varchar(50)
)
Я хочу создать таблицу в SqlServer, которая добавит в insert, автоматически увеличивающийся первичный ключ. Это должен быть идентификатор с автоинкрементами, похожий на функциональность MySql auto_increment. (Ниже)
create table foo
(
user_id int not null auto_increment,
name varchar(50)
)
Есть ли способ сделать это без создания триггера вставки?
Подобно этому
create table foo
(
user_id int not null identity,
name varchar(50)
)
OP запросил первичный ключ с автоматическим добавлением. Ключевое слово IDENTITY само по себе не превращает столбец в первичный ключ.
CREATE TABLE user
(
TheKey int IDENTITY(1,1) PRIMARY KEY,
Name varchar(50)
)
Они ответили на ваш вопрос, но я хочу добавить один совет для кого-то нового для использования столбцов идентификации. Бывают случаи, когда вам нужно вернуть значение только что вставленной личности, чтобы вы могли вставить ее в связанную таблицу. Многие источники расскажут вам использовать идентификатор @@, чтобы получить это значение. Ни при каких обстоятельствах вы никогда не будете использовать идентификатор @@, если хотите сохранить целостность данных. Это даст идентификатор, созданный в триггере, если один из них добавлен для вставки в другую таблицу. Поскольку вы не можете гарантировать, что значение идентификатора @@всегда будет правильным, лучше никогда не использовать @@identity. Используйте scope_identity(), чтобы получить это значение. Я знаю, что это немного не по теме, но важно понимать, как использовать личность с SQL Server. И поверьте мне, вы не хотели исправлять проблему связанных записей, имеющих неправильное значение идентификации, поданное им. Это то, что может заблудиться в течение нескольких месяцев до того, как оно будет изучено, и почти невозможно зафиксировать данные после этого.
Как уже упоминалось, добавьте атрибут IDENTITY в столбец и сделайте его первичным.
Существуют, однако, различия между MSSQL IDENTITY и MySQL AUTO_INCREMENT:
Просто установите поле как поле идентификации.
объявить поле идентификатором
Как указано выше, используйте поле IDENTITY.
CREATE TABLE foo
(
user_id int IDENTITY(1,1) NOT NULL,
name varchar(50)
)
Как говорили другие, просто установите параметр Identity.