powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Люди! Кто знаком с EXEC'ом отзовитесь!
11 сообщений из 11, страница 1 из 1
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051441
Фотография mumka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу триггер:
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 (Сам он инвалид! :-)))
Могу ли я как нибудь ему помочь?
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051453
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то таблицы deleted/inserted доступны только в теле триггера.
Если вам нужны, чтобы их содержимое было видно в вызываемых из триггера процедурах, то копируйте эти таблицы во временные таблицы
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051454
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблица deleted "видна" только в теле самого триггера.
EXEC(ANY STRING) создает свою область (scope), поэтому и возникает ошибка.

Вынесите выборку по deleted из EXEC.

Удачи
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051476
Фотография mumka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, Мужики, Спасибо Вам за помощь чайнику!!!
Есиб не вы такие умные ... (страшно подумать даже, что было бы).
Но блин процесс обучения череват препятствиями и я вот уже пол дня продолбался с этим 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
Может подскажете как енто можно провернуть ...
Вы ж такие умные :-)))
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051525
lvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lvv
Гость
Тут только динамический SQL и поможет
SET @str='SELECT @FKTCNAME FROM @FKTNAME '
SET @str=REPLACE(@str,'@FKTCNAME','мои колонки')
SET @str=REPLACE(@str,'@FKTNAME','моя таблица')
exec(@str)
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051531
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если уж переходить к динамическим запросам, то replace'ы нафиг не нужны.

Код: plaintext
1.
2.
3.
4.
5.
declare @str nvarchar( 4000 )
SET @str = N'SELECT @FKTCNAME FROM @FKTNAME'
exec sp_executesql
	@str,
	N'@FKTCNAME sysname, @FKTNAME sysname',
	@FKTCNAME = @FKTCNAME, @FKTNAME = @FKTNAME


Подстановка параметров делается именно так.
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051623
lvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
lvv
Гость
2 GreenSunrise

А ты случаем не напутал, параметр во FROM?
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051638
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, да. Причем в данном случае подстановка вместо имени колонки тоже неправильна. Это будет воспринято как строковая переменная и результат будет не тот. В общем, приношу извинения и беру свой предыдущий пост назад :-)
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051661
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To lvv
Я думаю, что это Она, а не ОН...
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051666
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2snake: в случае с exec'ом это принципиальная разница? Или невтерпеж устроить еще один нескончаемый треп? Так это в другом разделе.
...
Рейтинг: 0 / 0
Люди! Кто знаком с EXEC'ом отзовитесь!
    #32051674
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обидел?
Если нет, то я просто человека поправил, чтобы знал с кем общается! Насчет трепа - не мое это...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Люди! Кто знаком с EXEC'ом отзовитесь!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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