gpt4 book ai didi

sql - 如何将 NEWID()/GUID/UUID 插入代码编辑器?

转载 作者:行者123 更新时间:2023-12-02 02:44:48 25 4
gpt4 key购买 nike

许多代码编辑器都有内置菜单项或键盘功能来获取 UUID,例如当我按 CTRL + SHIFT + G 在 Delphi 中,它在源代码中的当前位置插入一个 GUID。

我知道我可以使用SELECT NEWID()来生成UUID,但我必须转到查询结果,将生成的UUID复制到我的剪贴板(杀死之前在那里的任何内容)然后返回代码并替换查询,这是处理此问题的糟糕方法。

是否有任何函数(可能使用 IntelliSense 代码片段?)可以在 SQL Server Management Studio 中执行此操作,但我尚未找到?

关于为什么我需要这个函数的一些背景,我经常这样编写 SQL 脚本:

INSERT INTO table (table_id, value) 
VALUES ('112C8DD8-346B-426E-B06C-75BBA97DCD63', 'ABC');

我不能只调用 NEWID(),因为我稍后(在另一个文件中)想使用以下方式引用特定行:

WHERE table_id = '112C8DD8-346B-426E-B06C-75BBA97DCD63'

如何将 UUID 插入代码编辑器?

最佳答案

NEWID() 本身就是一个函数。调用时返回一个 GUID 值。

您不必将其放在单独的窗口中,然后从那里复制粘贴值。只需将该函数放在需要 GUID 值的位置,当在运行时执行查询时,将使用该函数返回的值。

例如在插入语句中

INSERT INTO TableName (Col1 , Col2, Col3)
VALUES (1 , 'Value 1', NEWID())

如果您希望 col3 具有 GUID 值,则无需复制粘贴从 NEWID() 函数返回的值,而是使用该函数本身。在运行时,guid 值将被重新调整并插入到 col3 中。

如果您正在更新,同样如此

UPDATE TableName 
SET Col3 = NEWID()
WHERE <Some Condition>

同样,您不必复制粘贴从 NEWID() 函数返回的值,只需使用该函数本身。

另一个选项是假设您在代码中的某个位置无法调用 NEWID() 函数。您可以声明一个 UNIQUEIDENTIFIER 类型的变量,调用函数将其值存储到该变量,然后在代码中使用该变量,例如...

DECLARE @GUID_Value UNIQUEIDENTIFIER;
SET @GUID_Value = NEWID();

-- Now use this variable anywhere in your code.

添加到键盘快捷键

出于某种奇怪的原因,如果您想添加 SSMS 的快捷方式来为您生成 GUID。你需要做两件事。

  1. 创建一个返回 GUID 值的存储过程。
  2. 添加一个快捷键来调用该存储过程。

过程定义

CREATE PROCEDURE get_Guid
AS
SELECT NEWID();

将其添加到快捷方式

从 SSMS 转到工具 --> 选项 --> 环境 --> 键盘

将存储过程的名称添加到您想要的快捷方式中。单击“确定”。关闭 SSMS 并再次重新打开它,就可以开始了。

enter image description here

如上面的截图所示,现在如果您按 CTRL + 0,它将在同一查询窗口中为您生成一个 GUID 值。

关于sql - 如何将 NEWID()/GUID/UUID 插入代码编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com