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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> The multi-part identifier could not be bound 
V
    Опции темы
ДобренькийПапаша
Дата 6.12.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Код

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetTeacherSypherByFullName]
@fullName varchar(50)
AS
BEGIN
    SET NOCOUNT ON;

IF(Teachers.MiddleName!=null)
    BEGIN
        SELECT teacherSypher    
        FROM Teachers

        WHERE Surname + ' ' + FirstName + ' ' + MiddleName = @fullName;
    END
ELSE
    BEGIN
        SELECT teacherSypher    
        FROM Teachers
        WHERE Surname + ' ' + FirstName = @fullName;
    END
END


Ошибка: The multi-part identifier could not be bound
Ошибка в этой строке IF(Teachers.MiddleName!=null), я ссылаюсь видимо на то чего нет? А как сделать, всё-таки, нужную мне проверку?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Simpliest
Дата 6.12.2009, 14:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что должна делать по твоей задумке эта процедура?

Добавлено через 38 секунд
Ты не можешь напрямую вне запроса обратится к полю таблицы. Ты должен выбрать значение и сохранить в переменную

Добавлено через 2 минуты и 36 секунд
Все. я понял

в условии WHERE поставь 
Код

WHERE 
Surname + ' ' + FirstName + ' ' + MiddleName = @fullName 
OR
Surname + ' ' + FirstName = @fullName;


а if не нужен


--------------------
user posted image
PM   Вверх
boevik
Дата 6.12.2009, 14:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 15
Всего: 35



Можно решить проблему следующим образом:

Код

ALTER PROCEDURE [dbo].[GetTeacherSypherByFullName]
@fullName varchar(50)
AS
BEGIN
    SET NOCOUNT ON;

        SELECT teacherSypher    
        FROM Teachers
        WHERE Surname + ' ' + FirstName + ' ' + isnull(MiddleName, '') = @fullName;
END



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

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

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

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

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

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


 




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


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

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