0

您知道如何從數據庫表列的類型自動獲取參數類型嗎?MSSQL存儲過程參數類型使用數據庫表列

例如,

CREATE PROCEDURE UspS_GetProjectUser 
    @UserName GETTYPE(Projects.username) 
AS 
BEGIN 
    SET NOCOUNT ON; 

    SELECT TOP 1 * FROM Projects (NOLOCK) 
    WHERE Projects.expirationDate > GETDATE() 
    AND Projects.username = @UserName 
END 

的GetType(Projects.username)< < <我想要得到的數據庫表列的類型的類型?

謝謝..

回答

0

這是不可能的,因爲一個catch-22。需要編譯和執行proc以調用GETTYPE函數,但由於未知的參數數據類型,proc無法編譯。這需要當前不在SQL Server中的功能。

我假設你想要這個特性,不是爲了在運行時動態確定數據類型,而是爲了避免手動匹配列數據類型的開發工作(即在創建時靜態類型化)。這是有好處的,但請注意,調用者還應該指定正確的數據類型以避免由於隱式數據類型轉換而導致的意外行爲。

+0

嗨丹,我知道我們可以在PL/SQL中做到這一點,但我正在研究在MS SQL中有什麼辦法可以做到這一點。我寫了GETTYPE作爲示例函數。有沒有什麼功能可以做到這一點? –

+1

@SaygınKarahan,是的,我明白GETTYPE只是一個例子。此功能目前不存在於T-SQL中。 PL/SQL和T-SQL是不同的野獸。考慮在Connect上提交增強請求(https://connect.microsoft.com/SQLServer/)。 –

相關問題