I'm new to table-valued parameter in SQL Server 2008. I tried to make user-defined table with query
USE [DB_user]
GO
CREATE TYPE [dbo].[ApproveAddsIds] AS TABLE(
[Ids] [bigint] NULL
)
GO
When I tried to use the table type in stored procedure
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
I got two errors_
@dt has an invalid data type
Parameter @dt cannot be declared read only since it is not table-valued parameter.
So I tried to figure out reason behind this as first query is executed successfully I thought its because of permissions and so tried
GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO
But error continues don't know whats wrong with this.
Something weird I noticed right now when I put ,
after @dt [dbo].[ApproveAddsIds] READONLY
above error removed and now error is on AS
Saying expecting variables. When I write code for variables old error continued. I think it might help.
I had this exact problem happening to me. I simply made sure I had saved everything I needed in SQL Server and restarted the SQL Server Management Studio.
Once restarted, the errors no longer appeared. I am using SQL Server 2012 but I don't see why this shouldn't also work with 2008.