插入查询结果时,如何插入随机精确数字?

发布于 2025-01-28 00:13:38 字数 981 浏览 3 评论 0原文

我可以使用身份来生成唯一的ID号,但是插入数据时是否有一种方法可以生成一个完全随机的数字?当前,所有ID的开头是“ 1000”,

这是我的原始表:

CREATE TABLE Badges
(ID INTEGER IDENTITY(1000000000,23),
EmpID INTEGER NOT NULL,
EmpName nvarchar(50) not null,
EmpLastName nvarchar(50) not null,
IssueDate date default getdate(),
Validity char(1) default 'Y',
CONSTRAINT STATUS_CHECK check (Validity in ('Y','N')))

下面是我尝试设置随机ID编号生成的尝试。我还试图将兰特嵌套到身份中,但它没有起作用。可能不正确的语法,不太确定。

CREATE TABLE Badges
(Badge_ID INTEGER DEFAULT ROUND(RAND()*100000000,0) UNIQUE,
EmpID INTEGER NOT NULL,
EmpName nvarchar(50) not null,
EmpLastName nvarchar(50) not null,
IssueDate date default getdate(),
Validity char(1) default 'Y',
CONSTRAINT ID_status CHECK(Validity in ('Y','N')));

为了进行测试,我尝试插入部门8的所有员工,但现在它为每个人生成了相同的徽章_id号码,至少如果我批量插入员工,而不是一个人插入员工。

INSERT INTO Badges (EmpID, EmpName, EmpLastName)
SELECT EmployeeID, FirstName, LastName FROM HR.Employee WHERE DepartmentID = 8 

I can use IDENTITY to generate unique ID numbers, but is there a way to generate a completely random number when inserting data? Currently, all ID's start with "1000"

Here is my original table:

CREATE TABLE Badges
(ID INTEGER IDENTITY(1000000000,23),
EmpID INTEGER NOT NULL,
EmpName nvarchar(50) not null,
EmpLastName nvarchar(50) not null,
IssueDate date default getdate(),
Validity char(1) default 'Y',
CONSTRAINT STATUS_CHECK check (Validity in ('Y','N')))

Below is my attempt to set up random ID number generation. I also tried to nest RAND into IDENTITY, but it did not work. Probably incorrect syntax, not so sure.

CREATE TABLE Badges
(Badge_ID INTEGER DEFAULT ROUND(RAND()*100000000,0) UNIQUE,
EmpID INTEGER NOT NULL,
EmpName nvarchar(50) not null,
EmpLastName nvarchar(50) not null,
IssueDate date default getdate(),
Validity char(1) default 'Y',
CONSTRAINT ID_status CHECK(Validity in ('Y','N')));

For a test, I tried inserting all employees from department 8 but now it generates the same Badge_ID number for everybody, at least if I insert employees in bulk and not one by one.

INSERT INTO Badges (EmpID, EmpName, EmpLastName)
SELECT EmployeeID, FirstName, LastName FROM HR.Employee WHERE DepartmentID = 8 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文