У меня есть хранимая процедура в SQL Server 2008 R2:Типичная таблица SQL Server 2008 R2 не может работать?
CREATE TYPE TagTable AS TABLE (Tag VARCHAR(50))
declare @FilteredTags as TagTable
INSERT INTO @FilteredTags (Tag)
SELECT data FROM ...
Он используется для работы, но я хочу, чтобы изменить Tag
от VARCHAR(15)
к VARCHAR(50)
, я получаю сообщение об ошибке:
Msg 2715, Level 16, State 3, Procedure SearchNewsByTag, Line 3
Column, parameter, or variable #10: Cannot find data type TagTable.
Parameter or variable '@FilteredTags' has an invalid data type.Msg 1087, Level 16, State 1, Procedure SearchNewsByTag, Line 36
Must declare the table variable "@FilteredTags".
I попытался перезапустить все службы SQL Server, попробуйте использовать другое имя, например TagTable2, TagTable3 ... все еще не работает. Уровень совместимости 100
РЕШЕНИЕ: ПРОВЕРЬТЕ SCRIPT от http://www.sql-server-performance.com/2008/how-to-alter-a-uddt/, чтобы восстановить новый UDDT.
Пожалуйста, разместите строку, в которой вы изменяете длину varchar. Вы изменяете тип, пытаетесь ли вы напрямую изменить переменную таблицы? Подробнее здесь, пожалуйста. –
Он работает без проблем http://sqlfiddle.com/#!6/b2add/3 Я думаю, что тип недоступен в базе данных, вы можете проверить, что – Surendra
@JaazCole я не написал ничего, чтобы изменить varchar Я думаю, что SQL Server не поддерживает эту функцию. –