Sql server SQL参数语法:Declare@Parameter[dbo].[Table]

Sql server SQL参数语法:Declare@Parameter[dbo].[Table],sql-server,sql-server-2008,stored-procedures,parameters,sql-server-2012,Sql Server,Sql Server 2008,Stored Procedures,Parameters,Sql Server 2012,我正在使用一个具有我不熟悉的参数语法的存储过程 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

我正在使用一个具有我不熟悉的参数语法的存储过程

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,第16级,第3状态,第1行
列、参数或变量#1:找不到数据类型dbo.SomeTable。参数或变量“@AppSettingId”的数据类型无效

有人能澄清这个参数声明在做什么吗&我如何能够在存储过程之外复制它

@AppSettingIDs [dbo].[SomeTable] READONLY
这意味着您正在使用用户定义的表类型声明变量

变量
@AppSettingIDs
可以根据需要容纳多行。变量的结构与用户定义的表类型非常相似,因为它是用户定义的表类型的副本

请参阅屏幕截图以查找用户定义的表类型在数据库中的位置


那不是一张桌子;用户自定义的表类型;如果您有SSM,请展开db-->可编程性-->类型-->用户定义的表类型,您应该能够看到此参数定义的表there@techspider谢谢,我找到了桌子类型。这会让我走上正确的方向。