我正在使用具有我不熟悉的參數語法的存儲過程。SQL參數語法:Declare @Parameter [dbo]。[Table]
CREATE PROC [dbo].[sproc_GetAppSetting]
@AppSettingIDs [dbo].[SomeTable] READONLY,
@AppSectionID INT,
@KeyName varchar(255)
AS
SELECT
as.AppSettingSettingID,
as.Value,
as.ConfigID
FROM
AppSetting as WITH(NOLOCK)
JOIN
@AppSettingIDs asIds ON asIds.Val = as.ConfigID
WHERE
as.AppSectionID = @AppSectionID
AND as.Status = 'A'
AND as.Name = @KeyName
我的問題是關於行:
@AppSettingIDs [dbo].[SomeTable] READONLY
似乎這個變量被用作後來的查詢的引用的表:
JOIN
@AppSettingIDs asIds ON asIds.Val = as.ConfigID
表[dbo].[SomeTable]
在我正在使用的數據庫中不存在。更進一步,當我提取@AppSettingIDs
報關行是試圖瞭解什麼是存儲在存儲過程的上下文中的變量外,我得到一個SQL錯誤:
DECLARE @AppSettingIDs [dbo].[SomeTable]
Msg 2715, Level 16, State 3, Line 1
Column, parameter, or variable #1: Cannot find data type dbo.SomeTable. Parameter or variable '@AppSettingIDs' has an invalid data type.
有人能澄清這個參數聲明在做什麼&我怎麼能夠在存儲過程之外複製它?
這不是一張表;它是一個用戶定義的表類型;如果你有ssms,展開你的數據庫 - >可編程性 - >類型 - >用戶定義的表類型,你應該會看到這個參數定義表有 – techspider
@techspider謝謝,我能夠找到表類型。這應該使我走向正確的方向。 –