2013-06-17 4 views
4

Я создал тип значения таблицы, который создан отлично.Работа с типами таблиц

CREATE TYPE [ContactTemplate] AS TABLE (
    [Email]    VARCHAR(100), 
    [FirstName]   VARCHAR(50), 
    [LastName]   VARCHAR(50) 
) 
GO 

Тогда, когда я пытаюсь создать процедуру:

CREATE PROCEDURE [dbo].[usp_ProcessContact] 
( @Email  VARCHAR(100), 
    @FirstName VARCHAR(50), 
    @LastName VARCHAR(50), 
    @Contact ContactTemplate READONLY) 
    as 
    Begin 
    ------- 
    End 

я получаю сообщение об ошибке при

@Contact ContactTemplate READONLY" The parameter @Contact cannot 
be declared READONLY since it is not a table valued parameter 

Я пробовал много вещей, удаление dbo, кронштейны и т.д., по-прежнему не могу заставить его работать. Помогите пожалуйста.

+0

Вы добавляете тип C# в хранимую процедуру: 'ContactTemplate', который не будет работать, если вы не работаете с CLR sproc. –

+2

Я попытался запустить это, и у меня нет ошибок. Хранимая процедура создается успешно. Вы уверены, что используете одну и ту же базу данных при запуске обоих скриптов? –

+0

Да, тот же БД. Мне интересно, связано ли это с MSSQL 2012? –

ответ

10

Попробуйте следующее: Изменить -> IntelliSense -> Обновить локальный кеш - если вы только что определили тип таблицы, ваша таблица символов еще не знает об этом. Или создайте тип, выйдите из SSMS и снова запустите.

Смежные вопросы