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

Откуда:
Сообщений: 22
Добрый день.

Есть громадная таблица.
Она должна быть выгружена в стороннюю программу в которой будет потом происходить связь с другой таблицей по ключевому полю.
Таким ключевым полем является поле с типом binary(16).
Первоначально была идея конвертнуть это поле в bigint для того, что бы связь в сторонней программе была более быстрой (как я предполагал циферная связь быстрее работает чем текстовая а значит это лучше).
Но столкнулся с проблемой, что разные binary(16) могут конвертиться в одинаковое значение bigint.
Подскажите как быть?

Нет смысла вообще переводить в bigint и сторонней программе так и работать с исходным текстовым полем для связи,
или все же есть какой то хитрый способ как можно правильнее конвертировать binary(16) в bigint без задвоений?


Спасибо.








Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
19 авг 19, 19:18    [21952809]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
Удивительно, как это 16 байт не влезает в 8 без потери точности...
19 авг 19, 19:32    [21952826]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4716
Pallich,

Bigint это 8 байт. А binary(16) это 16 байт.

16 байт может влезть в guid / uniqueidentifier.
19 авг 19, 19:33    [21952827]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
msLex
Member

Откуда:
Сообщений: 8065
a_voronin
Pallich,

Bigint это 8 байт. А binary(16) это 16 байт.

16 байт может влезть в guid / uniqueidentifier.


а еще, вы не поверите, в binary(16).
Зачем эти костыли с uniqueidentifier?
19 авг 19, 19:40    [21952834]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
Pallich
Member

Откуда:
Сообщений: 22
Я понимаю, что 16 байт не влазит в 8 :)

Я спрашиваю как быть? Нет варианта в цифру переделать?
То есть придется оставлять это ключевое поле без конвертации и в сторонней программе соединять все же по этому полю как текстовому?
Верно?
19 авг 19, 20:36    [21952886]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Pallich,

С каких пор binary стало текстом?
19 авг 19, 22:14    [21952949]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
Pallich
Member

Откуда:
Сообщений: 22
Mind,
В сторонней программе это поле станет текстом :(
19 авг 19, 22:15    [21952950]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
Pallich,

Обратитесь к документации вашей программы.
19 авг 19, 22:38    [21952961]     Ответить | Цитировать Сообщить модератору
 Re: Конвертирование в число  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7752
https://www.sql.ru/forum/946587/iz-binary-v-varchar
20 авг 19, 00:16    [21952992]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить