Jen*_*off 18 sql sql-server ssms
许多代码编辑器都有一个内置的菜单项或键盘功能来获取UUID,例如当我在Delphi中按CTRL+ SHIFT+时G,它会在源代码的当前位置插入一个GUID.
我知道我可以SELECT NEWID()
用来生成UUID,但我必须转到查询结果,将生成的UUID复制到我的剪贴板(杀死之前的内容),然后返回代码并替换查询处理这个问题的可怕方式.
是否有任何功能(可能使用IntelliSense代码片段?)在我还没有找到的SQL Server Management Studio中执行此操作?
关于为什么我需要这个函数的一些背景,我经常写这样的SQL脚本:
INSERT INTO table (table_id, value)
VALUES ('112C8DD8-346B-426E-B06C-75BBA97DCD63', 'ABC');
Run Code Online (Sandbox Code Playgroud)
我不能只使用call NEWID()
,因为我后来想要引用特定的行使用:
WHERE table_id = '112C8DD8-346B-426E-B06C-75BBA97DCD63'
Run Code Online (Sandbox Code Playgroud)
M.A*_*Ali 35
NEWID()
本身就是一种功能.当被调用时返回GUID值.
您不必将其放在单独的窗口中,然后从那里复制粘贴值.只需将该函数放在需要GUID值的位置,并在运行时执行查询时,将使用此函数返回的值.
例如,在Insert语句中
INSERT INTO TableName (Col1 , Col2, Col3)
VALUES (1 , 'Value 1', NEWID())
Run Code Online (Sandbox Code Playgroud)
如果您希望col3具有GUID值,则无需复制粘贴从NEWID()函数返回的值,但您可以使用该函数本身.在运行时,将重新调整guid值并将其插入col3.
同样,如果您正在更新
UPDATE TableName
SET Col3 = NEWID()
WHERE <Some Condition>
Run Code Online (Sandbox Code Playgroud)
再次,您不必复制粘贴从NEWID()函数返回的值只需使用函数本身.
另一个选项是假设您在代码中的某个位置无法调用该NEWID()
函数.你会声明一个UNIQUEIDENTIFIER类型的变量调用函数将其值存储到该变量,然后在你的代码中使用该变量来代码...
DECLARE @GUID_Value UNIQUEIDENTIFIER;
SET @GUID_Value = NEWID();
-- Now use this variable anywhere in your code.
Run Code Online (Sandbox Code Playgroud)
出于某种奇怪的原因,如果您想为SSMS添加快捷方式以便为您生成GUID.你需要两件事.
CREATE PROCEDURE get_Guid
AS
SELECT NEWID();
Run Code Online (Sandbox Code Playgroud)
从您的SSMS转到工具 - >选项 - >环境 - >键盘
将存储过程的名称添加到所需的快捷方式.单击确定.关闭SSMS并重新打开它,你很高兴.
如上面的snipshot所示,现在如果你按CTRL + 0它将在同一个查询窗口中为你生成一个GUID值.
对于 SQL 服务器,也许还有其他。
可以使用转换函数在 SQL Server 中插入字符串编码的 Guid/uuid。请参阅下面示例中的归零 Guid。
INSERT INTO [schema].[table]
([Id]
,[stuff])
VALUES
(Convert(uniqueidentifier, N'00000000-0000-0000-0000-000000000000')
,'Interesting Stuff'
)
Run Code Online (Sandbox Code Playgroud)