sql-server - 将随机名称作为 SQL 值插入
问题描述
所以我创建了一个数据库,它是一个有客户的银行;但在那个数据库中,我编写了一个返回 50 个客户的函数(或者在我的例子中,50 个 John Smiths)
...因为我在该代码中硬编码了我的客户的姓名 John Smith 和他的电子邮件地址。现在我想找到一种方法来用一个变量替换我硬编码的名字,这个变量将只返回随机名称。像 James Doe、Sally Fields 等……
请指出正确的方向,用随机名称正确替换 John Smiths。
这是我的函数的代码,因此您可以了解我在说什么以及我在寻找什么。
BEGIN
DECLARE @loopCount tinyint
DECLARE @tableCount tinyint
DECLARE @randomSSN int
SELECT @loopCount = 1
WHILE (@loopCount <= 50)
BEGIN
SELECT @randomSSN = RAND()*(999999998)+1
SELECT @tableCount = COUNT(*) FROM Customer WHERE SSN = @randomSSN
IF @tableCount = 0
INSERT INTO Customer (FirstName, LastName, Email, SSN) VALUES ('John', 'Smith', 'JohnSmith@gmail.com', @randomSSN)
SELECT @loopCount = @loopCount +1
END
END
解决方案
你可以使用这样的东西
BEGIN
DECLARE @loopCount tinyint
DECLARE @tableCount tinyint
DECLARE @randomSSN int
SELECT @loopCount = 1
WHILE (@loopCount <= 50)
BEGIN
SELECT @randomSSN = RAND()*(999999998)+1
SELECT @tableCount = COUNT(*) FROM Customer WHERE SSN = @randomSSN
IF @tableCount = 0
WITH cte as (
SELECT *
FROM (VALUES ('Ann','smith'),('Sarah','Paulson'),('Phil','Coulson'),('John','Palmer'),
('Steve','Jobs'),('Bill','Gates')) AS t(first_name,Last_name)
)
INSERT INTO Customer (FirstName, LastName, Email, SSN)
VALUES (
(select top 1 first_name from cte order by newid()),
(select top 1 Last_name from cte order by newid()),
'JohnSmith@gmail.com',
@randomSSN)
SELECT @loopCount = @loopCount +1
END
END
推荐阅读
- azure - 我们可以通过在 ARM 模板中传递 vnet id 将 vnet 集成到 azure 容器注册表吗?
- docker - 如何使用在我的 Dockerfile 中保存为 tar 文件的 docker 图像作为父图像
- dataframe - 将 spark df 转换为后续对的 df
- python - 引用如何在 python 中工作以及如何创建链表的单独副本以与原始链表进行比较
- kotlin - Kotlin Fused Location Provider 不止一次获得位置更新
- html - 我的分页当前页码不可见
- python - 将str转换为日期python
- javascript - 具有动态行的内联表使用php添加并发布到sql
- android - 保存搜索历史 Android Kotlin
- json - 如何使用字典对象或列表使用 Json C# 创建 Dto