Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 добавление таблиц  [new]
ahmae
Member

Откуда:
Сообщений: 35
Всем доброго дня!
нужна помощь! стоит SQL server 2008r2
имеется таблица№1 "table1" и таблица№2 "temp_table"
T P Nizm
551.611
581.2512
561.5413
571.1414
541.7415


а "temp_table" пока пустая
T P Nizm


например мы удаляем строку, где Nizm =12
скрипт написан на VBA 6
strTableSQL = "DELETE FROM table1 WHERE (Nizm = " & j & i & ")"
rcsSIKNDB.Open strTableSQL, conSIKNDB, adOpenForwardOnly, adLockOptimistic, adCmdText
и в этот момент должна передаваться информация в таблицу "temp_table", но с условием:

вместо Nizm = "12" должна закидываться строка с "13", но с Nizm= "12",
а вместо Nizm = "13" должна закидываться строка с "14", но с Nizm = "13",
а вместо Nizm = "14" должна закидываться строка с "15", но с Nizm= "14"
это примерно так:

strTableSQL = "insert into [temp_table] select * from [table1]  WHERE (Nizm = " & j & i & ")" знаю что здесь неправильно((
rcsSIKNDB.Open strTableSQL, conSIKNDB, adOpenForwardOnly, adLockOptimistic, adCmdText

т.е. должна вот такая таблица получаться:

T P Nizm
551.611
561.5412
571.1413
541.7414

как это сделать помогите плиз!!!!!
16 ноя 11, 10:56    [11603972]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
BOL->Triggers
16 ноя 11, 11:02    [11604017]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
ahmae
Member

Откуда:
Сообщений: 35
pkarklin
BOL->Triggers

можно поподробней
16 ноя 11, 11:20    [11604163]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
Sator Arepo
Member

Откуда: Королев, М.О.
Сообщений: 2613
ahmae
...............................
strTableSQL = "DELETE FROM table1 WHERE (Nizm = " & j & i & ")"
rcsSIKNDB.Open strTableSQL, conSIKNDB, adOpenForwardOnly, adLockOptimistic, adCmdText
и в этот момент должна передаваться информация в таблицу "temp_table", но с условием:

..........................
strTableSQL = "insert into [temp_table] select * from [table1]  WHERE (Nizm = " & j & i & ")" знаю что здесь неправильно((
rcsSIKNDB.Open strTableSQL, conSIKNDB, adOpenForwardOnly, adLockOptimistic, adCmdText

не по существу, но зацепило. Зачем же открывать рекордсет только для того, чтобы выполнить команду, не возвращающую набора строк?
См. объекты (видимо) ADODB.Connection, ADODB.Command - у обоих есть метод Execute. И параметр Options, в который можно вписать значение adExecuteNoRecords
16 ноя 11, 11:21    [11604177]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
p2rcoder
Member

Откуда:
Сообщений: 10
ahmae, можно в 2 запроса

strTableSQL = "insert into [temp_table] select * from [table1] WHERE (Nizm = " & j & i & ")"
rcsSIKNDB.Open strTableSQL, conSIKNDB, adOpenForwardOnly, adLockOptimistic, adCmdText

strTableSQL = "update [temp_table] set Nizm = Nizm - 1 WHERE (Nizm > " & j & i & ")"
rcsSIKNDB.Open strTableSQL, conSIKNDB, adOpenForwardOnly, adLockOptimistic, adCmdText

я так понимаю что нужно просто перенумеровать? зачем во временную таблицу? второй апдейт можно сразу по первой сделать
16 ноя 11, 11:25    [11604204]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
ahmae,

На сервере, на таблице (нажмите плюсики - Triggers) сделать триггер

CREATE TRIGGER [dbo].[TR_table1_INS]
ON [dbo].[table1]
FOR  INSERT
BEGIN
-- Ниже, эту строку нормально напишите, какие поля куда вставить
insert into [temp_table] 
select * from [color=blue]inserted [/color]WHERE (Nizm =
-- к значению поля прибавить единицу, наверно не проблема?

END
16 ноя 11, 11:29    [11604233]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ahmae
можно поподробней


Вот именно в документации по серверу описано, как создавать триггеры, срабатывающие на инструкцию.

ЗЫ. И эта... завязывайте в с жестким кодированимем запросов в приложение.
16 ноя 11, 11:29    [11604239]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
ahmae
pkarklin
BOL->Triggers

можно поподробней
Тык.

Или, внутри ХП это все сделать...
16 ноя 11, 11:31    [11604250]     Ответить | Цитировать Сообщить модератору
 Re: добавление таблиц  [new]
ahmae
Member

Откуда:
Сообщений: 35
все получилось!
всем огромное спасиб!
17 ноя 11, 20:39    [11616864]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить