Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Конкатенация строк  [new]
VladC#
Member

Откуда:
Сообщений: 202
есть триггер:
CREATE  TRIGGER AddingNewEntry ON [dbo].[Clients] 
for INSERT
AS

declare @newBar char(13)
select @newBar=barcode from inserted

if exists(select * from Clients where barcode=@newBar)
begin
declare errmsg char(50)
set errmsg=@newBar || 'sdf'
raiserror 70001 errmsg
rollback transaction
end

в строке "set errmsg=@newBar || 'sdf'" мне нужно вывести значение переменной плюс какой то текст, а при проверке синтаксиса мне выдается 'char' is not a recognized CURSOR option. как сделать?
13 дек 07, 10:21    [5042392]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
в t-sql для конкатенации используется +

Posted via ActualForum NNTP Server 1.4

13 дек 07, 10:22    [5042399]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
VladC#
Member

Откуда:
Сообщений: 202
daw
в t-sql для конкатенации используется +

Posted via ActualForum NNTP Server 1.4


и с плюсом пробовал - не получается, ошибка та же
13 дек 07, 10:24    [5042409]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Glory
Member

Откуда:
Сообщений: 104751
declare @errmsg char(50)
13 дек 07, 10:25    [5042419]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Glory
Member

Откуда:
Сообщений: 104751
declare @errmsg char(50)
set @errmsg=@newBar + 'sdf'
raiserror 70001 @errmsg
13 дек 07, 10:26    [5042423]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
VladC#
Member

Откуда:
Сообщений: 202
точно!!!!!, спасибо большое ;) и куда смотрел ;)
13 дек 07, 10:29    [5042444]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
KGP
Member

Откуда: Москва
Сообщений: 4554
1. в inserted может быть не одна запись
2. где вообще используется || для конкатенации строк?
13 дек 07, 11:12    [5042749]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Glory
Member

Откуда:
Сообщений: 104751
KGP

2. где вообще используется || для конкатенации строк?

в Oracle, например
13 дек 07, 11:13    [5042754]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
KGP
1. в inserted может быть не одна запись
2. где вообще используется || для конкатенации строк?
2. В Oracle
13 дек 07, 11:16    [5042784]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2506
KGP
2. где вообще используется || для конкатенации строк?
Проще сказать, где оно не используется: MS SQL Server, SyBase ASE, MySQL.
В остальных более менее распространенных СУБД (Oracle, IBM, Informix, PostgreSQL, SyBase ASA, SyBase IQ, FireBird, InterBase, Yaffil) в качестве оператора конкатенации строк используется двойная вертикальная черта (||)
13 дек 07, 11:36    [5043003]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Конкатенация строк  [new]
Big17
Member

Откуда:
Сообщений: 680
Только в ORACLE при использовании || NULL-ы будут учтены как пустые строчки, а в T-SQL если при конкатенации встретятся NULL - то все выражение будет NULL.

Т.е. в сиквеле не забывайте использовать ISNULL(Value, ''), если возможны NULL-овые значения.
25 июл 14, 15:14    [16358188]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Big17
Только в ORACLE при использовании || NULL-ы будут учтены как пустые строчки, а в T-SQL если при конкатенации встретятся NULL - то все выражение будет NULL.

Т.е. в сиквеле не забывайте использовать ISNULL(Value, ''), если возможны NULL-овые значения.


ну, за 7 лет уже наверное нарвался на это и изучил
25 июл 14, 15:20    [16358227]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Big17
Только в ORACLE при использовании || NULL-ы будут учтены как пустые строчки, а в T-SQL если при конкатенации встретятся NULL - то все выражение будет NULL.

Т.е. в сиквеле не забывайте использовать ISNULL(Value, ''), если возможны NULL-овые значения.
Пока это не совсем верно...
25 июл 14, 15:31    [16358313]     Ответить | Цитировать Сообщить модератору
 Re: Конкатенация строк  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
За 7 лет уже много чего изменилось
25 июл 14, 16:09    [16358625]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить