SQL Сервер: вставить запись в таблицу, где хэшируется идентификатор? - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь вставить запись в таблицу с двумя ключами: TableNo int и RateID varchar32.

Оба не допускают нулевые значения. У меня проблема, если я вставляю запись из бэкэнда, используя insert в, я должен указать RateID, поэтому, если я даю ей 0 или 1 или 3, это работает, однако, когда я вставляю запись из внешнего интерфейса, система генерирует уникальный символ 32 ссылка. Я пытаюсь воссоздать это и задаюсь вопросом, как система генерирует уникальный идентификатор.

Это код, полученный из SQL трассировки сервера;

exec sp_executesql 
N'INSERT INTO BTRRTEmpls (TableNo, Employee, EffectiveDate, Rate, RateID) 
VALUES (@TableNo, @Employee, @EffectiveDate, @Rate, @RateID)',
    N'@TableNo int,@Employee varchar(6),@EffectiveDate datetime,@Rate decimal(4,2),@RateID varchar(32)',
    @TableNo=1111,@Employee='781.WM',@EffectiveDate='2020-01-01 
00:00:00',@Rate=45.65,@RateID='A010589973F841C28EB8E4356D0B6CFC'

Как генерируется это значение A010589973F841C28EB8E4356D0B6CFC для @RateID?

Screenshot of Table

1 Ответ

0 голосов
/ 12 февраля 2020

Генерирует случайный 32-битный символ, который уникален.
REPLACE (NEWID (), '-', '')

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