Non valide le type de données lors de l'utilisation type de table défini par l'utilisateur

Je suis nouveau paramètre table dans SQL Server 2008. J'ai essayé de faire table défini par l'utilisateur à l'aide de requêtes

USE [DB_user]
GO
CREATE TYPE [dbo].[ApproveAddsIds] AS TABLE(
    [Ids] [bigint] NULL
)
GO 

Quand j'ai essayé d'utiliser le type de table dans une procédure stockée

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

J'ai deux errors_

@dt a une défaillance de type de données

Le paramètre @dt ne peut pas être déclaré en lecture seule car il n'est pas de paramètre table.

J'ai donc essayé de comprendre la raison derrière cela comme première requête est exécutée avec succès, j'ai pensé que sa raison d'autorisations et a tenté

GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO

Mais l'erreur continue ne sais pas quoi de mal avec cela.

Quelque chose de bizarre, j'ai remarqué que maintenant, quand j'ai mis , après @dt [dbo].[ApproveAddsIds] READONLY au-dessus d'erreur supprimé et maintenant l'erreur est sur AS Disant attendre les variables. Quand j'écris du code pour les variables d'erreur vieille de suite. Je pense que ça pourrait aider.

Hmmmm... ne peut pas reproduire ce - fonctionne comme un charme pour moi. Êtes-vous (a) assurez-vous que vous êtes toujours sur le même serveur / base de données? (b) pensez-vous réellement avoir un corps dans votre procédure stockée? (J'ai gardé l'obtention de syntaxe Incorrecte près de 'FIN' si je n'ai pas de déclarations dans le corps)
- vous sûr que vous avez créé le type de table: CREATE TYPE ... AS TABLE ... ? En gros, le message d'erreur indique qu'il n'est pas [dbo].[ApproveAddsIds] type de table.
Je suis sur le même serveur/ base de données n ont essayé d'impression salut dans le corps, mais l'erreur de poursuite.
je le pense aussi, mais le type de table est créée avec succès.
Si vous vérifiez votre base de données dans SQL Server Management Studio, de l'Explorateur d'Objets, aller à la Programmability > Types > User-Defined Table Types - voyez-vous votre ApproveAddsIds type de table?

OriginalL'auteur Hot Cool Stud | 2014-01-02