|
|
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
Пишу триггер: SET @STROKA='SELECT [Ссылка на код валюты] FROM [Справочник курсов валют] WHERE [Справочник курсов валют].[Ссылка на код валюты]= (SELECT [Код валюты] FROM deleted)' EXECUTE sp_executesql @STROKA или EXEC (@STROKA) Выдает: Server: Msg 208, Level 16, State 1, Line 1 [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'deleted'. Мол не вижу deleted (Сам он инвалид! :-))) Могу ли я как нибудь ему помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 19:18:18 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
Вообще-то таблицы deleted/inserted доступны только в теле триггера. Если вам нужны, чтобы их содержимое было видно в вызываемых из триггера процедурах, то копируйте эти таблицы во временные таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 19:49:13 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
Таблица deleted "видна" только в теле самого триггера. EXEC(ANY STRING) создает свою область (scope), поэтому и возникает ошибка. Вынесите выборку по deleted из EXEC. Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 19:49:24 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
Блин, Мужики, Спасибо Вам за помощь чайнику!!! Есиб не вы такие умные ... (страшно подумать даже, что было бы). Но блин процесс обучения череват препятствиями и я вот уже пол дня продолбался с этим EXEC'ом и ... обламался. 1)Как оказалось для запуска в тиггере EXEC необходимо иметь на это права, а пользователям БД такие права пожалуй давать жалко (да я и не знаю где - в стандартных разрешениях в ЕМ их нет). 2) К тому же добившись срабатывания триггера в QA, с удивлением обнаружил что он некорректно работает в EM. То есть при запрещении удаления RAISERROR не вылетает и делается вид что сторка удалена, но когда выходишь и заходишь обратно обнаруживаешь ее целой и не вредимой. 3) Таким образом хотелось бы выполнить динамический запрос вида: SELECT (SELECT(@FKTCNAME)) FROM (SELECT (@FKTNAME)) где @FKTCNAME=ColName @FKTNAME=TablName MSSQL в теле инструкции FROM не поддерживает параметры, и работает только SELECT (SELECT(@FKTCNAME)) FROM TablName Может подскажете как енто можно провернуть ... Вы ж такие умные :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 22:34:09 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
Тут только динамический SQL и поможет SET @str='SELECT @FKTCNAME FROM @FKTNAME ' SET @str=REPLACE(@str,'@FKTCNAME','мои колонки') SET @str=REPLACE(@str,'@FKTNAME','моя таблица') exec(@str) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2002, 09:42:58 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
Ну если уж переходить к динамическим запросам, то replace'ы нафиг не нужны. Код: plaintext 1. 2. 3. 4. 5. Подстановка параметров делается именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2002, 09:54:45 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
2 GreenSunrise А ты случаем не напутал, параметр во FROM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2002, 12:14:46 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
Похоже, да. Причем в данном случае подстановка вместо имени колонки тоже неправильна. Это будет воспринято как строковая переменная и результат будет не тот. В общем, приношу извинения и беру свой предыдущий пост назад :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2002, 12:46:03 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
To lvv Я думаю, что это Она, а не ОН... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2002, 13:35:43 |
|
||
|
Люди! Кто знаком с EXEC'ом отзовитесь!
|
|||
|---|---|---|---|
|
#18+
2snake: в случае с exec'ом это принципиальная разница? Или невтерпеж устроить еще один нескончаемый треп? Так это в другом разделе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2002, 13:56:12 |
|
||
|
|

start [/forum/search_topic.php?author=Timur22&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 657ms |
| total: | 799ms |

| 0 / 0 |
