Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Конвертиация varchar в bigint  [new]
Drfвв
Guest
Есть простой update одной таблицы (миллионов 25 записей)
Update _t
SET [BigIntF] = CAST([StringF] AS bigint)
WHERE  ISNUMERIC([StringF]) = 1  AND 
AND CHARINDEX('+',[StringF]) = 0  AND CHARINDEX('-',[StringF]) = 0

Получаю
Error converting data type varchar to bigint.

Как мне правильно еще найти строчки где рушиться это (
5 ноя 09, 12:10    [7884811]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
А почему числа хранятся как строки?
Храните их как числа, и все
5 ноя 09, 12:11    [7884821]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
Drfвв
Guest
Паганель
А почему числа хранятся как строки?
Храните их как числа, и все

Я и преобразую где возможно из строки в число.
Вопрос даже такой в общем случае:
идет большой update , по какой то причине падает.
Как быстрее найти причину? ))
5 ноя 09, 12:13    [7884845]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Drfвв
Вопрос даже такой в общем случае:
идет большой update , по какой то причине падает.
Как быстрее найти причину? ))
Обычно апдейт, если падает, сообщает причину в виде сообщения же об ошибке.
5 ноя 09, 12:16    [7884872]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
UPDATE _t
SET [BigIntF] = CAST(CASE WHEN ISNUMERIC([StringF])=1 AND [StringF] NOT LIKE '%[^ 0-9+-]%' THEN [StringF] END AS bigint)
WHERE  ISNUMERIC([StringF])=1 AND [StringF] NOT LIKE '%[^ 0-9+-]%';
Но надо бы ещё проверять на переполнение BIGINT
5 ноя 09, 12:17    [7884890]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Рекомендую автору воспользоваться поиском на этом форуме по слову ISNUMERIC
5 ноя 09, 12:17    [7884894]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
Drfвв
Guest
tpg
Drfвв
Вопрос даже такой в общем случае:
идет большой update , по какой то причине падает.
Как быстрее найти причину? ))
Обычно апдейт, если падает, сообщает причину в виде сообщения же об ошибке.

Это понятно, ошибку я написал в первом посту. )
5 ноя 09, 12:18    [7884911]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Паганель
Рекомендую автору воспользоваться поиском на этом форуме по слову ISNUMERIC
Достаточно поискать в этой теме
5 ноя 09, 12:20    [7884922]     Ответить | Цитировать Сообщить модератору
 Re: Конвертиация varchar в bigint  [new]
Drfвв
Guest
iap
Паганель
Рекомендую автору воспользоваться поиском на этом форуме по слову ISNUMERIC
Достаточно поискать в этой теме

Спасибо за решение. Ctrl-F в теме был использован , решение было найдено :)
5 ноя 09, 12:21    [7884945]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить