簡體   English   中英

@@ SERVERNAME的SQL Server數據庫阻止問題

[英]SQL Server database blocking issue with @@SERVERNAME

我們的一台數據庫服務器上存在一個鎖定問題。 在詳細調查造成阻塞的原因之后,我們發現這是我們的功能之一。 真正令人驚訝的是,該函數不執行任何操作 -僅返回格式化的服務器名稱。

CREATE FUNCTION [dbo].[GetReleaseName]()
RETURNS NVARCHAR(50)
AS
BEGIN   
    DECLARE @serverName NVARCHAR(20)
    DECLARE @ReleaseVersion NVARCHAR(20)

    SET @ReleaseVersion = '20170807'
    RETURN @@SERVERNAME + '_UAT_' + @ReleaseVersion
END

@@SERVERNAME怎么引起任何阻止?

標量函數的性能較差。

嘗試用內聯表值函數替換函數。

這是一個例子:

CREATE FUNCTION [dbo].[GetReleaseName_ITVF]()
RETURNS TABLE
AS
RETURN(
    SELECT @@SERVERNAME + '_UAT_20170807' as FullServerName
)

用法:

SELECT * FROM [table] CROSS APPLY GetReleaseName_ITVF()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM