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


Автор: Pogreb 9.4.2008, 02:14
Доброго времени суток smile

У меня такой вопрос возник. Я создал базу данных (MS SQL 2005 SQLEXPRESS), в данной базе у меня несколько таблиц.
Первая таблица с именами клиентов. Каждой записи присваивается уникальный ID и это поле естественно Primary key.
Проблема возникает тогда когда я добавляю в базу новую запись. А запись о клиенте добавляется сразу в несколько таблиц, которые ссылаются на ID в таблице с именами. Вставляю я в три таблицы командой INSERT INTO. Поля называются CustomerID в трех таблицах, и связаны между собой и значение NULL не может быть присвоенно.  И когда я выполняю данную SP у меня выдает сообщение об ошибке, о том что мне может добавить, потому что значение NULL не может быть присвоено полю CustomerID.

Можно ли сделать так чтобы при добавлении записи в таблицу с именами, значение CustomerID каскадом добавлялось в другие 2 таблицы???

Автор: Itsys 9.4.2008, 06:29
Цитата(Pogreb @  9.4.2008,  02:14 Найти цитируемый пост)
Можно ли сделать так чтобы при добавлении записи в таблицу с именами, значение CustomerID каскадом добавлялось в другие 2 таблицы

Каскадным может быть только обновление и удаление smile 

Все делается ручками сначала вносишь данные в одну таблицу, потом получаешь либо MAX(CustomerID) либо @@IDENTITY и испольщуешь его при добавлении данных в другие таблицы.

Автор: Pogreb 9.4.2008, 14:38
Спасибо.

Автор: Magnifico 9.4.2008, 16:19
Цитата

потом получаешь либо MAX(CustomerID) либо @@IDENTITY


А если CustomerID не счетчик?
 а что типа  :
123_ABC
775_BBB
648_NMN

Автор: Itsys 9.4.2008, 22:43
Magnifico, Раз помогло, значит счетчик  smile 

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