Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Добавление записи в 1 строку


Автор: Yagmort 3.2.2011, 12:50
Код

INSERT INTO [oil].[dbo].[NUMBER]
           ([id_field]
           ,[field1])
     VALUES
           (1
           ,1)
GO


[id_field] - автоинкремент, как добавить запись именно с 1 id ? Если в таблице еще нет этого ID? или как можно обнулить данные по ID

Автор: Akina 3.2.2011, 12:52
Цитата(Yagmort @  3.2.2011,  13:50 Найти цитируемый пост)
 как добавить запись именно с 1 id ?

 smile зачем? какие ещё функции Вы возложили на синтетический ключ и нахрена?

Автор: Yagmort 3.2.2011, 12:57
Цитата(Akina @ 3.2.2011,  12:52)
Цитата(Yagmort @  3.2.2011,  13:50 Найти цитируемый пост)
 как добавить запись именно с 1 id ?

 smile зачем? какие ещё функции Вы возложили на синтетический ключ и нахрена?

Да вот надо, чтобы она отображалась просто 1. И после нее только будут добавлятся записи. Для корректного отображения.

Автор: Akina 3.2.2011, 13:04
Копайте BOL по вопросу сброса значения IDENTITY. Там есть.
Но всё равно ерунда какая-то...

Автор: chip_and_dayl 3.2.2011, 14:24
Код

SET NOCOUNT ON
SET IDENTITY_INSERT [registry] ON
GO

INSERT INTO [oil].[dbo].[NUMBER]
           ([id_field]
           ,[field1])
     VALUES
           (1
           ,1)
GO

SET IDENTITY_INSERT [registry] OFF
SET NOCOUNT OFF
GO


Автор: Yagmort 3.2.2011, 16:57
Сообщение 1088, уровень 16, состояние 11, строка 2
Не удалось найти объект "registry", так как он не существует, или отсутствуют разрешения.
Сообщение 544, уровень 16, состояние 1, строка 2
Невозможно вставить явное значение для столбца идентификаторов в таблице "NUMBER", когда параметр IDENTITY_INSERT имеет значение OFF.
Сообщение 1088, уровень 16, состояние 11, строка 2
Не удалось найти объект "registry", так как он не существует, или отсутствуют разрешения.

Автор: Akina 3.2.2011, 17:19
Да блин, вот лентяй же! давно бы посмотрел уже - нет, будет ждать, пока на блюдечке принесут...
http://msdn.microsoft.com/ru-ru/library/ms176057.aspx...

Автор: chip_and_dayl 3.2.2011, 19:20
Yagmort
Код

SET IDENTITY_INSERT [registry] ON

Здесь  вместо registry нужно указать  имя своей таблицы и ниже также

Добавлено через 18 секунд
А вообще в сообщение ошибки все  написано

Автор: Yagmort 4.2.2011, 10:33
Цитата(chip_and_dayl @ 3.2.2011,  19:20)
Yagmort
Код

SET IDENTITY_INSERT [registry] ON

Здесь  вместо registry нужно указать  имя своей таблицы и ниже также

Добавлено @ 19:21
А вообще в сообщение ошибки все  написано

Спасибо все заработало smile

Добавлено через 1 минуту и 5 секунд
Цитата(Akina @ 3.2.2011,  17:19)
Да блин, вот лентяй же! давно бы посмотрел уже - нет, будет ждать, пока на блюдечке принесут...
http://msdn.microsoft.com/ru-ru/library/ms176057.aspx...

 smile  Я не лентяй просто учусь еще на него  smile 

Автор: Akina 4.2.2011, 11:20
Цитата(Yagmort @  4.2.2011,  11:33 Найти цитируемый пост)
все заработало 

Теперь только не забывайте:
1) Пользователь должен быть владельцем объекта или членом предопределенной роли сервера sysadmin, предопределенной роли базы данных db_owner или db_ddladmin.
2) В каждый момент времени только для одной таблицы в сеансе свойство IDENTITY_INSERT может принимать значение ON.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)