我是SQL Server 2008表值参数的新手。我试图通过查询创建用户定义的表。
USE [DB_user]
GO
CREATE TYPE [dbo].[ApproveAddsIds] AS TABLE(
[Ids] [bigint] NULL
)
GO
当我尝试在存储过程中使用表类型时
USE [DB_user]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[GetTopTopic]
@dt [dbo].[ApproveAddsIds] READONLY
AS
BEGIN
END
我遇到了两个错误_
@dt数据类型无效
参数@dt不能被声明为只读,因为它不是表值参数。
所以我试图找出这背后的原因,因为第一条查询成功执行了,我认为是权限问题,所以尝试了以下操作:
GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO
但错误仍然存在,不知道出了什么问题。
我刚刚注意到一些奇怪的事情,在@dt [dbo].[ApproveAddsIds] READONLY
后面加上,
,以上述错误就被解决了,现在的错误是关于AS
,说期望变量。当我编写变量代码时,旧的错误继续存在。我认为这可能有所帮助。
CREATE TYPE ... AS TABLE ...
吗?基本上,错误信息告诉我们没有[dbo].[ApproveAddsIds]
表类型。 - Bogdan SahleanSELECT @@Version
语句可以得到什么结果? - marc_s