1

为了newid()在 UDF 中使用,我创建了一个可以帮助我的视图:

create view RandomUUID as select newid() as UUID

通过这种方式,UDF 现在可以访问 newid()。

但是,我的问题是选择它的最佳方法是什么?在我的 UDF 中的查询中添加TOP 1or是否有意义?(nolock)如:

select UUID from RandomUUID

对比

select top 1 UUID from RandomUUID (nolock) -- Or any other combo of query modifiers

更新:

这个SqlFiddle演示了它是如何被使用的。

4

1 回答 1

1

没有理由添加(nolock),因为没有涉及锁定的记录!作为记录,(NOLOCK)应该WITH (nolock)从 SQL Server 2008 开始编写(或者是 2005 年)。

TOP (1)将在此处添加一个无关紧要的 SORT 运算符,因为只创建了一行。


您可以像这样创建它:

create view RandomUUID as select newid() as UUID;
GO

create function give_me_a_new_id ()
returns uniqueidentifier as
begin
return (select UUID from RandomUUID);
end;
GO

注意:(nolock)将被优化掉,但TOP(1)会添加一个 SORT 操作,如此处所示展开执行计划)。

于 2012-11-09T21:50:00.440 回答