将记录插入 ID 被散列的 table?
Insert record into table where ID is hashed?
我正在尝试将记录插入到具有两个键的 table 中:TableNo int
和 RateID varchar32
。
两者都不允许空值。我遇到的问题是,如果我使用 insert into 从后端插入一条记录,我必须指定一个 RateID
,所以如果我给它 0 或 1 或 3 它会起作用,但是当我从前端插入记录时,系统会生成一个唯一的32 个字符参考。我正在尝试重新创建它并想知道系统如何生成唯一 ID。
这是从 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'
@RateID
的值 A010589973F841C28EB8E4356D0B6CFC
是如何生成的?
生成唯一的随机 32 位字符
REPLACE(NEWID(),'-','')
我正在尝试将记录插入到具有两个键的 table 中:TableNo int
和 RateID varchar32
。
两者都不允许空值。我遇到的问题是,如果我使用 insert into 从后端插入一条记录,我必须指定一个 RateID
,所以如果我给它 0 或 1 或 3 它会起作用,但是当我从前端插入记录时,系统会生成一个唯一的32 个字符参考。我正在尝试重新创建它并想知道系统如何生成唯一 ID。
这是从 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'
@RateID
的值 A010589973F841C28EB8E4356D0B6CFC
是如何生成的?
生成唯一的随机 32 位字符
REPLACE(NEWID(),'-','')