Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
добрый день! У меня возникла проблема в написании триггера Instead Of Insert - Упрощенно задача выглядит следующим образом: Есть две таблицы: Table1: Id : (int, not null, identity, PK) Name : Varchar(50), null Table2: Id : (Int, not null, PK) - FK_Table1_Id Count: (Int, null) Для этих таблиц создано представление: create view dbo.[View1] as Select table1.id, name, count from Table1, Table2 GO необходимо написать триггер, который будет заносить записи в таблицы Table1, table2. Основная проблема в том, что поле Table1.Id - Identity, заполняется автоматически. и в таблице inserted поле не заполнено. Как правильно написать триггер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:21 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
voltдобрый день! У меня возникла проблема в написании триггера Instead Of Insert - Упрощенно задача выглядит следующим образом: Есть две таблицы: Table1: Id : (int, not null, identity, PK) Name : Varchar(50), null Table2: Id : (Int, not null, PK) - FK_Table1_Id Count: (Int, null) Для этих таблиц создано представление: create view dbo.[View1] as Select table1.id, name, count from Table1, Table2 GO необходимо написать триггер, который будет заносить записи в таблицы Table1, table2. Основная проблема в том, что поле Table1.Id - Identity, заполняется автоматически. и в таблице inserted поле не заполнено. Как правильно написать триггер.Для начала правильно напишите SELECT для view. Сейчас там у вас декартово произведение таблиц. Если поле в одной таблице является и PK, и FK на другую таблицу, то логичнее иметь одну таблицу. Ибо это отношение 1:1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:25 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
volt, и завязывайте с запятыми во FROMе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:27 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
voltSelect table1.id, name, count from Table1, Table2 выполнить то пробовали? ничего странного не заметили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:27 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Konst_One, Прошу прощения. Еще раз: Table1: Id int, pk, identity Name varchar(50) Table2: id int, pk, fk_table1_id Count Int Представление: SELECT dbo.Table1.id, dbo.Table1.Name, dbo.Table2.Count FROM dbo.Table1 LEFT OUTER JOIN dbo.Table2 ON dbo.Table1.id = dbo.Table2.ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:31 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
триггер то на какую таблицу вешается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:42 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Konst_Oneтриггер то на какую таблицу вешается?Триггер он на view хочет, наверно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:44 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
iap, Абсолютно верно, я хочу переопределить добавление строки в представлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:45 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
iapKonst_Oneтриггер то на какую таблицу вешается?Триггер он на view хочет, наверно =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:45 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Мыши плакали, кололись, но продолжали грызть кактус ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 15:47 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Konst_One, Есть варианты написания триггера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 16:44 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
неверная архитектура ведёт за собой неверные способы реализации фукционала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 16:52 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Konst_One, Полностью согласен, к сожалению архитектура досталась от предыдущего разработчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 16:56 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Konst_One, иногда проще написать view, чем перелопатить полторы сотни процедур. insert table1 output table 2 либо то же через merge. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 16:57 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Спасибо за поддержку. К сожалению, не понимаю следующий момент insert table1(name) output table2.FK_ID select name from inserted Выдает ошибку. можно чуть подробнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 10:29 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
volt, ну, во первых, надо перечислять поля, которые вы хотите получить в output, а потом уже указывать into таблицу, куда вставляете. а во вторых MSDNТаблица output_table не может: Иметь включенные триггеры, определенные для нее. Участвовать в ограничениях FOREIGN KEY с любой стороны. Иметь ограничения CHECK или активированные правила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 10:39 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Пожалуйста, пример. Я думал, что знаю SQL, как же я ошибался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 12:54 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
voltПожалуйста, пример. Я думал, что знаю SQL, как же я ошибалсяОбъявите табличную переменную. OUTPUT - в неё. Оттуда - с айдишниками для привязки вставляете во вторую таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:24 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
iap, написал следующий триггер: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Выдает ошибку Invalid column name 'count'. не нравится компилятору строка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:43 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
voltВыдает ошибку Invalid column name 'count'. не нравится компилятору строка я же писал вам про мышей и кактус =) у вас нет такого поля в таблице table1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 13:52 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
Konst_One, Я прочитал, посмеялся, согласился. Но править из-за этого все БД я не могу. изменить таблицу, что бы в ней содержались все значения тоже странно выглядит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:00 |
|
||
|
Триггер Instead Of Insert
|
|||
|---|---|---|---|
|
#18+
читайте до просветления https://docs.microsoft.com/ru-ru/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-2017 этот пукт особо: https://docs.microsoft.com/ru-ru/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-2017#a-using-output-into-with-a-simple-insert-statement ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 14:04 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39637536&tid=1689823]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 392ms |

| 0 / 0 |
