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

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

09.09.2016, 11:43. Просмотров 184. Ответов 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
Выдает пустые поля. Скажите, будьте добры, как получить корректное значение ,указывая символьное значение?
http://www.cyberforum.ru/sql-server/thread2043270.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2016, 11:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создание простой процедуры (SQL Server):

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

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

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

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

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

6
iap
803 / 613 / 124
Регистрация: 27.11.2009
Сообщений: 1,817
09.09.2016, 11:46 #2
CHAR - это строка длиной один символ. Надо задавать длину в скобках. CHAR(100).
Обычно лучше не CHAR, а VARCHAR
0
pincet
1300 / 887 / 120
Регистрация: 23.07.2010
Сообщений: 4,801
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
1300 / 887 / 120
Регистрация: 23.07.2010
Сообщений: 4,801
09.09.2016, 11:59 #5
Цитата Сообщение от mansitto Посмотреть сообщение
like @short
like '%'+@short
0
iap
803 / 613 / 124
Регистрация: 27.11.2009
Сообщений: 1,817
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
Привет! Вот еще темы с решениями:

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

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

Создание процедуры, работающей со временем в ms sql
В базе есть табличка , в которой хранится datetime в строке "StartTime". Мне...

Создание процедуры с входными параметрами и курсором
Никак не могу найти ошибку в запросе (SQLQuery11) Создать процедуру с...


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

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

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