在 SQL Server 2022 中创建 SP 时出现表值参数错误

编程


我将数据库附加到 SQL Server 2022 版本并添加了一个新表 URLabelHeader。 添加新的存储过程时出现以下错误。

SQL
CREATE PROCEDURE [dbo].[spSaveURLprocess]  
(  
      @tblURLlabelHeader [dbo].tblURLabelHeader Readonly
)
AS  
BEGIN  
SET NOCOUNT ON;.....

错误信息:

Msg 2715, Level 16, State 3, Procedure spSaveURLprocess, Line 10 [Batch Start Line 6]
Column, parameter, or variable #1: Cannot find data type dbo.tblURLlabelHeader.
Parameter or variable '@tblURLlabelHeader' has an invalid data type.

参数 @tblURLlabelHeader 不能声明为 READONLY,因为它不是表值参数。

谁能帮帮我吗!

我尝试过的:

除了新创建的表之外它都有效。 可以创建基于旧表的存储过程。 提前致谢。

解决方案1

根据错误消息和创建过程语句,该表类型似乎不存在。 您可能需要生成用户定义的表类型 tblURLabelHeader

SQL
/* Create a table type. */
CREATE TYPE tblURLabelHeader 
   AS TABLE
      ( ColumnName1 datatype,
		ColumnName2 datatype );
GO

您可以通过以下查询来验证表类型:’tblURLabelHeader‘以及其他新创建的表。

SQL
SELECT *
FROM sys.table_types
WHERE name = 'yourtabletypename' -- In your case is 'tblURLabelHeader'

您还可以参考下面的示例/链接,了解有关如何创建用户定义表类型的更多详细信息。 创建类型 (Transact-SQL) – SQL Server | 微软学习[^]

コメント

タイトルとURLをコピーしました