2014-10-10 7 views
0

Мне нужно добавить знак фунта (#) в строку в таблице SQL.Добавление # в столбце в SQL Server 2008

У меня есть хранимая процедура, которая создает таблицу. Когда эта таблица будет создана, мне нужно обновить поле, чтобы добавить E # перед существующей строкой.

Я попытался это:

DECLARE @intro VARCHAR = 'E[#]' 
UPDATE [regKioskdb].[dbo].[MOBapptTest] 
SET emrID =(@intro + emrID) 

Это добавляет E перед существующей строки, но не #. Есть ли другой способ сделать это?

Мы используем эту таблицу для поиска, когда кто-то сканирует карту. Карта отформатирована в E # HubLive0000000. Мы попытались использовать javascript для удаления E # из ввода, но при сканировании им не повезло.

Сценарий: Пользователь просматривает карту на веб-странице в киоске. Веб-страница запрашивает базу данных - ищет номер из сканирования карты. Если он найдет номер, он вернет сообщение на веб-странице. Поскольку мне не повезло добавить E # в созданную мной таблицу, каждое сканирование отображается как «не найденное», даже если номер учетной записи находится в базе данных (без E #).

Заранее спасибо.

+1

[Прекратите говорить 'VARCHAR' и указать размер, как' VARCHAR (32) '] (HTTP: // sqlblog .com/блоги/aaron_bertrand/Архив/2009/10/09/плохие-привычки к ножным объявляющего-VARCHAR-без-length.aspx). Отладка 101: 'PRINT @intro;' могла бы привести к тому, что значение было усечено до того, как оно попытается обновить таблицу ... –

+0

Действительно. 'varchar' for' "E [#]" 'является просто' E', поскольку это на самом деле varchar (1). Вы должны сказать это как ответ @Aaron, потому что это настоящая причина. –

+0

Спасибо за советы ребятам. Я нахожусь в процессе пожарной ситуации и учился, когда я ухожу. – user1623347

ответ

0

Попробуйте это ...

UPDATE [regKioskdb].[dbo].[MOBapptTest] 
SET emrID = 'E' + CHAR(35) + emrId 

(Очевидно, проверить его первым)

+1

Это не помогает, если 'E #' происходит от переменной или параметра, возможно, представленным конечным пользователем. Он также предполагает, что сам персонаж является проблемой, когда это не проблема. –

+0

Вы уверены, что это даже делает его хранимой процедурой в правильной форме? Вы сделали что-то вроде 'SELECT @ intro'? – Ruslan

+0

CHAR (35) отлично работал. Я должен был быть ясным, в хранимой процедуре я вытаскиваю номер счета из другой таблицы в базе данных. Вход со сканера/веб-сайта карты используется только для сопоставления лица, просматривающего карту на своей учетной записи в базе данных. – user1623347

Смежные вопросы