Вопрос № 43144: Здравствуйте.
Речь идет об SQL Server 2k Enterprise.
Можно ли передать имя поля, которое нужно вернуть, передать хранимой процедуре в качестве параметра? К примеру в таблице есть ряд полей на разных языках. Требуется проверять их на наличие п...Вопрос № 43201: Здравствуйте, Уважаемые Эксперты!
Подскажите, пожалуйста где можно нарыть хоть какую-нибудь инфу по дерективам типа "#M_FORCEPLAN" и иже с ними. Поиск в инете не дал результатов....
Вопрос № 43.144
Здравствуйте.
Речь идет об SQL Server 2k Enterprise.
Можно ли передать имя поля, которое нужно вернуть, передать хранимой процедуре в качестве параметра? К примеру в таблице есть ряд полей на разных языках. Требуется проверять их на наличие перевода. Примерный вид процедуры в приложении. Только непонятно, как передать имя поля - langName.
Приложение:
Отправлен: 15.05.2006, 21:59
Вопрос задал: Кошелев АВ (статус: 3-ий класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: SpaJdeR
Здравствуйте, Кошелев АВ!
Можно воспользоваться системной хранимой процедурой sp_executesql, которая возволяет выполнять динамические скрипты. @langName будет передаваться как обычная текстовая строка (nvarchar(30) или что-нить в этом духе).
Статьи по работе с sp_executesql:
MSDN (eglish) - http://www.sql.ru/faq/faq_topic.aspx?fid=104
Динамический запрос или "переменная @Tablename" (рус) - http://www.sql.ru/faq/faq_topic.aspx?fid=104
Ответ отправил: SpaJdeR (статус: 1-ый класс)
Ответ отправлен: 16.05.2006, 01:09 Оценка за ответ: 5 Комментарий оценки: Спасибо, то что надо. Перепутана ссылка на мсдн, но там я уже нашел их кучу, главное знаю что искать.
Отвечает: Santana
Здравствуйте, Кошелев АВ!
Что-то я Вас сударь не понял. Нужно значение поля по условию? Попробуйте так
SELECT FieldName
FROM admin_content
WHERE node_ident = @nodeID
FieldName - соответственно то поле какое надо
если нужны разные поля. надо добавить еще один параметр. например int @iTypeLang и далее в процедуре
if @iTypeLang = 1
SELECT Franch
FROM admin_content
WHERE node_ident = @nodeID
if @iTypeLang = 2
SELECT English
FROM admin_content
WHERE node_ident = @nodeID
можно условие в селекте ставить. вообщем возможны варианты
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 10:30
Вопрос № 43.201
Здравствуйте, Уважаемые Эксперты!
Подскажите, пожалуйста где можно нарыть хоть какую-нибудь инфу по дерективам типа "#M_FORCEPLAN" и иже с ними. Поиск в инете не дал результатов.
Отвечает: Santana
Здравствуйте, Wino Veritas!
например SYBASE.RU или SQL.RU. а исчо есть поисковики типа яндекса или гоголя.
ищите да обрящете
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 16.05.2006, 12:08 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ!
Отвечает: Игорь Елизаров
Здравствуйте, Wino Veritas!
а это точно директива ?
Дело в том, что, например в SQL символом # в начале наименования переменной обозначают, что это временная таблица.
Может это из той же оперы ?
Ответ отправил: Игорь Елизаров (статус: 4-ый класс)
Ответ отправлен: 16.05.2006, 15:23 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ! Да, это именно директива. Это деректива планировщику запросов, на основе которой принимается решение об оптимизации, а вот что она означает - не знаю.