Невозможно выбрать правильные данные с типом данных varbinary - PullRequest
0 голосов
/ 22 сентября 2019

Я вставляю varbinary данные в таблицу TEMP.При выборе таблицы TEMP я не получаю правильный вывод.Он показывает мне другой вывод, чем то, что я вставил.

Вывод и вставленный SID отличаются.Как решить эту проблему

CREATE TABLE #SQLLOGINS
(
  NAME NVARCHAR(250),
  SID VARBINARY(MAX)
)    

INSERT INTO #SQLLOGINS (NAME, SID) 
VALUES('Dev_Config_User', CAST('0x010600000000006400000000000000003A93A6F3D52B7949A715D24561FAC3BB' AS VARBINARY(MAX)))
INSERT INTO #SQLLOGINS (NAME, SID) 
VALUES('Dev_Smart_user', CAST('0x0106000000000064000000000000000004B76A0393F9E841804C51F60703E036' AS VARBINARY(MAX)))
INSERT INTO #SQLLOGINS (NAME, SID) 
VALUES('Dev_Smart2_User', CAST('0x01060000000000640000000000000000883D5E1A9EC11F40B6DBAF657082C780' AS VARBINARY(MAX)))

SELECT * FROM #SQLLOGINS

Output

1 Ответ

0 голосов
/ 22 сентября 2019

Удалите CAST и просто вставьте шестнадцатеричные значения:

INSERT INTO #SQLLOGINS (NAME, SID) 
VALUES('Dev_Config_User', 0x010600000000006400000000000000003A93A6F3D52B7949A715D24561FAC3BB)
INSERT INTO #SQLLOGINS (NAME, SID) 
VALUES('Dev_Smart_user', 0x0106000000000064000000000000000004B76A0393F9E841804C51F60703E036)
INSERT INTO #SQLLOGINS (NAME, SID) 
VALUES('Dev_Smart2_User', 0x01060000000000640000000000000000883D5E1A9EC11F40B6DBAF657082C780)

ОБНОВЛЕНИЕ:

Если вам нужно преобразовать шестнадцатеричный код как строку, тоиспользуйте CONVERT(BINARY, N'string', 1):

INSERT INTO #SQLLOGINS (NAME, SID) 
VALUES('Dev_Smart_user', CONVERT(BINARY, N'0x0106000000000064000000000000000004B76A0393F9E841804C51F60703E036', 1))

Это должно работать тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...