Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> переменные вместо явных имен таблиц/полей в SELECT, Как использовать? sysname? простой вопро 
V
    Опции темы
LongInt
  Дата 18.8.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



хм... интересно, но пока в учебниках ничего не нашел, даже как то странно...

Вот, например, мне нужна sp или просто функция, кот. в качестве параметров будет принимать имена таблицы и полей, с которыми необходимо выполнить операции. Насколько я понимаю эти пар-ры/переменные должны быть типа sysname. я прав?
Но вот стопорнуло то меня далее. Как мне использовать эти переменные в конструкции SELECT FROM WHERE ???

Т.е.

Код

--просто для примера
DECLARE @TableName sysname, @FieldName1 sysname, @FieldName2 sysname, @num int
SET @TableName = 'Students'
SET @FieldName1 = 'FIO'
SET @FieldName2 = 'N_3a4etku'
SET @num = 110323767

--Далее надо постороить, например, вот такой простой запрос
SELECT FIO FROM Students WHERE N_3a4etku = 110323767
--но используя переменные а не явные имена....
--КАК?


подскажите smile 
PM MAIL ICQ   Вверх
kobra
Дата 18.8.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 5
Всего: 9



Код

DECLARE @TableName sysname, @FieldName1 sysname, @FieldName2 sysname, @num int
SET @TableName = 'Students'
SET @FieldName1 = 'FIO'
SET @FieldName2 = 'N_3a4etku'
SET @num = 110323767

DECLARE @Sql nvarchar(4000)

SET @Sql = 'SELECT ' + @FieldName1 + ' FROM ' + @TableName + ' WHERE ' + @FieldName2 + ' = ' + @num 

EXEC (@Sql)

PM MAIL   Вверх
LongInt
  Дата 19.8.2007, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



О. спасибо! smile 
Сейчас нет возможности попробовать....
И тут идет через SET. блин...
А как это тогда использовать в курсоре, например smile 

Код

DECLARE curs CURSOR LOCAL FOR EXEC(@Sql)


такое будет работать?


где бы пр это почитать то? не подскажите, люди?

Это сообщение отредактировал(а) LongInt - 19.8.2007, 07:29
PM MAIL ICQ   Вверх
LongInt
Дата 20.8.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



тупил я вчера после субботы smile 
отдуплил уже все smile 
спс
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0604 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.