powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование ntext
15 сообщений из 15, страница 1 из 1
Использование ntext
    #32034679
INsideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно использовать в триггере поля с типом ntext, но не знаю как, в доках сказано, что это невозможно, но мне очень нужно.
...
Рейтинг: 0 / 0
Использование ntext
    #32034684
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит использовать ?
И какая версия SQL ?
...
Рейтинг: 0 / 0
Использование ntext
    #32034694
INsideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL Server 2000, pri popitki ispol'zovat local'nuju peremennuju tipa ntext, govorit, chto nel'zja, trigger tipa FOR(AFTER)
...
Рейтинг: 0 / 0
Использование ntext
    #32034700
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объявить локальную переменную типа text НЕВОЗМОЖНО.

Да и зачем вам это нужно в триггере ?
...
Рейтинг: 0 / 0
Использование ntext
    #32034701
INsideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mne nuzhno pisat' history na izmenenija
...
Рейтинг: 0 / 0
Использование ntext
    #32034706
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте INSTEAD OF триггеры. Тогда в таблице inserted будет новое значение, а самой таблице - старое
...
Рейтинг: 0 / 0
Использование ntext
    #32034707
INsideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eto ja znaju, no u menja ne rabotajet INSTEAD OF trigger, pokazhi
syntaksis
...
Рейтинг: 0 / 0
Использование ntext
    #32034709
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратиться к полям text, ntext, image таблицы inserted действительно нельзя. Можно сделать так: делаем выборку PK (ну или любого уникального поля/набора полей) из inserted, а потом связку нормальной таблицы и inserted через этот ключ. К моменту срабатывания триггера (только не instead of) значения в постоянной таблице уже есть.

select * from t1, inserted where t1.id = inserted.id

Но объявить локальную переменную типа text нельзя в любом случае.
...
Рейтинг: 0 / 0
Использование ntext
    #32034711
INsideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mne nuzhno na udalenije i izmenenije zapisej delat' history, v tablicu hi_t1 pisat' starije znachenija.
...
Рейтинг: 0 / 0
Использование ntext
    #32034712
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
USE pubs
GO

CREATE TRIGGER tu_pub_info ON [dbo].[pub_info] 
INSTEAD OF UPDATE
AS

select a.pr_info, b.pr_info
from inserted a  inner join pub_info b on b.pub_id = a.pub_id

rollback transaction
GO

update pub_info set pr_info = 'xxxxx' where pub_id = '9999'


PS

rollback transaction я добавил, чтобы "не портить" содержимое таблицы
...
Рейтинг: 0 / 0
Использование ntext
    #32034715
INsideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U menja pri ispol'zovaniji INSTEAD OF, INCORRECT SYNTAX NEAR 'INSTEAD'
...
Рейтинг: 0 / 0
Использование ntext
    #32034717
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Database Compatibility Level какой ?
7.0 наверное ?
...
Рейтинг: 0 / 0
Использование ntext
    #32034718
INsideR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Da, no eto trebovanije zakazchika
...
Рейтинг: 0 / 0
Использование ntext
    #32034723
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а что вы тогда хотите - по существу вы работаете с SQL 7 и вам придется принять все ограничения этой версии.
...
Рейтинг: 0 / 0
Использование ntext
    #32034824
Фотография Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно, хотя конечно не совсем допустимое по производительности решение - это открытие в триггере курсора и при каждом UPDATE или INSERT работать с ntext старым добрым способом - READTEXT & WRITETEXT. Я так делал на заре своего знакомства с SQL, но теперь имею стойкое отвращение к курсорам - беее... :)

Второе решение - это не создавать поля ntext, а напротив - построить таблицы по принципу - головная таблица, которая фактически содержит заголовок, и детальная таблица с нарезанными кусками текста типа nvarchar (4000). Хотя опять эффективно работать с такой структурой можно только с SQL 2000.

-- Слон
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование ntext
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]