Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
mansitto
7 / 7 / 2
Регистрация: 24.02.2014
Сообщений: 169
1

Создание простой процедуры

09.09.2016, 11:43. Просмотров 205. Ответов 6
Метки нет (Все метки)

Добрый день. Создаю простейшую процедуру. Название FIO.Смысл:использовать для быстрого оперирования данными.
Пример прост: ввожу FIO 875, получю ID,Краткое ФИО

Код
SQL
1
2
3
4
5
6
7
ALTER PROCEDURE [dbo].[FIO] ( @tid INT )
 
AS
BEGIN
SELECT tid,ShortName FROM ProductionResources
WHERE tid=@tid
END
Вывод
tid ShortName
875 Тестов Т.Т.

Так вот если я ввожу int Значение в качестве параметра проц-ры,то выдает все корректно.

Хочу передалать на символьный входной параметр.

SQL
1
2
3
4
5
6
7
ALTER PROCEDURE [dbo].[FIO] ( @short CHAR )
 
AS
BEGIN
SELECT tid,ShortName FROM ProductionResources
WHERE ShortName=@short
END
Выдает пустые поля. Скажите, будьте добры, как получить корректное значение ,указывая символьное значение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2016, 11:43
Ответы с готовыми решениями:

Создание хранимой процедуры, которая создает хранимые процедуры
Написать хранимую процедуру SQL , которая будет создавать хранимые...

Создание процедуры
Не могу пофиксить ошибки. Основа кода - с сайта по Transact-SQL. То есть...

Создание процедуры
Уважаемые формчане, помогите решить проблему. Проблема состоит в следующем:...

Создание хранимой процедуры
Доброго времени суток, пытаюсь создать хранимую процедуру через запрос вида: ...

Создание процедуры Автора
Добрый вечер! помогите пожалуйста создать процедуру! с 2 параметрами: Создающую...

6
iap
888 / 616 / 127
Регистрация: 27.11.2009
Сообщений: 1,828
09.09.2016, 11:46 2
CHAR - это строка длиной один символ. Надо задавать длину в скобках. CHAR(100).
Обычно лучше не CHAR, а VARCHAR
0
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,937
09.09.2016, 11:47 3
N'Тестов Т.Т'
0
mansitto
7 / 7 / 2
Регистрация: 24.02.2014
Сообщений: 169
09.09.2016, 11:59  [ТС] 4
Цитата Сообщение от iap Посмотреть сообщение
CHAR - это строка длиной один символ. Надо задавать длину в скобках. CHAR(100).
Обычно лучше не CHAR, а VARCHAR
Да,это я пропустил,но не помогло. Пробовал WHERE ShortName like @short. Тоже пусто

Добавлено через 7 минут
Я затупил.
Вот проц,кот-я отрабатывает как нужно
SQL
1
2
3
4
5
6
7
8
  
ALTER PROCEDURE [dbo].[FIO] ( @short VARCHAR(20))  
  
AS  
BEGIN  
SELECT tid,ShortName FROM ProductionResources  
WHERE ShortName  LIKE '%'+@short+'%'  
END
0
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,937
09.09.2016, 11:59 5
Цитата Сообщение от mansitto Посмотреть сообщение
like @short
like '%'+@short
0
iap
888 / 616 / 127
Регистрация: 27.11.2009
Сообщений: 1,828
09.09.2016, 11:59 6
Цитата Сообщение от mansitto Посмотреть сообщение
Да,это я пропустил,но не помогло. Пробовал WHERE ShortName like @short. Тоже пусто

Добавлено через 7 минут
Я затупил.
Вот проц,кот-я отрабатывает как нужно
SQL
1
2
3
4
5
6
7
8
  
ALTER PROCEDURE [dbo].[FIO] ( @short VARCHAR(20))  
  
AS  
BEGIN  
SELECT tid,ShortName FROM ProductionResources  
WHERE ShortName  LIKE '%'+@short+'%'  
END
А какого типа ShortName?
Какой COLLATE у этого поля? У базы?
Есть ли там какие-нибудь невидимые символы, например, пробелы?
Могут ли по ошибке храниться похожие по написанию английские буквы вместо русских и наоборот?
0
mansitto
7 / 7 / 2
Регистрация: 24.02.2014
Сообщений: 169
09.09.2016, 12:10  [ТС] 7
Цитата Сообщение от iap Посмотреть сообщение
А какого типа ShortName?
Какой COLLATE у этого поля? У базы?
Есть ли там какие-нибудь невидимые символы, например, пробелы?
Могут ли по ошибке храниться похожие по написанию английские буквы вместо русских и наоборот?
Сортировка SQL_Latin1_General_CP1251_CI_AS. Нет,невидимым символов нет. Все буквы русские. Проблема была в том,что вычислял точное совпадение,а нужно приблизительное.
0
09.09.2016, 12:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2016, 12:10

Запрос на создание хранимой процедуры
есть 2е таблици 1) таблица устройств (tb_devivce) из 2 полей id_dev (ИД...

Создание процедуры редактирующей триггер
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO USE ClassroomFund GO ...

Создание хранимой процедуры на выборку...
В общем есть таблица типа: Фамилия Деньги Петров 200 Иванов 100...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru