簡體   English   中英

我可以在數據庫的不同存儲過程中引用SQL Server中的CONSTANT這樣的東西嗎?

[英]Is there such a thing as a CONSTANT in SQL Server that I can refer to in different stored procedures in my database?

我有此代碼,它是存儲過程的一部分。 我還有其他具有類似摘要的存儲過程。

    INSERT INTO dbo.UserTest
    (  
        AdminTestId,
        Sequence,
        TestStatusId              
    ) 
    VALUES
    (
        @AdminTestId,
        @SEQ ,
        1
    ) 

現在,我剛剛意識到testStatusId的值1應該是2 我一直犯這些錯誤,因為我忘記了哪個號碼。

有什么方法可以讓我引用一個常量,該常量可以在所有存儲過程之外的某個地方設置?

理想情況下,我想做的是這樣的事情。 但是我不想在每個存儲過程的頂部聲明TestStatusId.Started的值。

    INSERT INTO dbo.UserTest
    (  
        AdminTestId,
        Sequence,
        TestStatusId              
    ) 
    VALUES
    (
        @AdminTestId,
        @SEQ ,
        @TestStatsusId.Started
    ) 

在存儲過程中可以引用的全局值的上下文中,沒有常量的概念。 您可以在存儲過程中聲明變量(盡管不是常量): DECLARE @variableName <VariableType> = <Value> ,但不能在DECLARE @variableName <VariableType> = <Value>之外。

跨多個數據庫對象訪問值的最佳選擇是創建一個包含全局值的表。 然后,在存儲過程中,可以使用SELECT語句為您檢索值,或者創建一個用戶定義的函數,該函數通過某個鍵(例如,按名稱)拉回一個值。

在典型的編程意義上沒有“常數”,但是您正在數據庫中工作。 您的表中充滿了常量。 如果這對您來說是個問題,則可以有一個表,其中一列包含數字標識符,另一列包含關鍵字。 另外,您可以使用一個函數為您執行此轉換,然后在存儲過程中調用它。

暫無
暫無

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

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