Estava tentando atualizar as tabelas de sistema e não foi permitido. Eu precisava de atualizar todos os campos do meu banco de NVARCHAR para VARCHAR pois tenho um sistema multi banco e no Firibird não há o tipo NVARCHAR e precisava fazer esta modificação para manter a compatibilidade dos bancos para não atrapalhar o sistema.
O select abaixo me retorna todos os campos do banco com as definições e tamanho dos campos NVARCHAR. Abaixo do select tem o update que tentei fazer, que era trocar os NVARCHAR para VARCHAR setando o tamanho do campo para a metade. select: select 'Column_name' = name, 'Type' = type_name(user_type_id), 'IdType' = user_type_id, 'Computed' = case when ColumnProperty(object_id, name, 'IsComputed') = 0 then 'no' else 'yes' end, 'Length' = convert(int, max_length), -- for prec/scale, only show for those types that have valid precision/scale -- Search for type name + ',', because 'datetime' is actually a substring of 'datetime2' and 'datetimeoffset' 'Prec' = case when charindex(type_name(system_type_id) + ',', N'tinyint,smallint,decimal,int,real,money,float,numeric,smallmoney,date,time ,datetime2,datetimeoffset,') > 0 then convert(char(5),ColumnProperty(object_id, name, 'precision')) else ' ' end, 'Scale' = case when charindex(type_name(system_type_id) + ',', N'tinyint,smallint,decimal,int,real,money,float,numeric,smallmoney,date,time ,datetime2,datetimeoffset,') > 0 then convert(char(5),OdbcScale(system_type_id,scale)) else ' ' end, 'Nullable' = case when is_nullable = 0 then '@no' else 'yes' end, 'TrimTrailingBlanks' = case ColumnProperty(object_id, name, 'UsesAnsiTrim') when 1 then 'no' when 0 then 'yes' else '(n/a)' end, 'FixedLenNullInSource' = case when type_name(system_type_id) not in ('varbinary','varchar','binary','char') then '(n/a)' when is_nullable = 0 then 'no' else 'yes' end, 'Collation' = collation_name from sys.all_columns --where object_id = (select object_id/*, @sysobj_type = type*/ from sys.all_objects where object_id = object_id('MENU')) where object_id > 100 and type_name(user_type_id) in ('nvarchar','varchar') update: update sys.all_columns set max_length = (max_length/2), user_type_id = 167 where user_type_id = 231 and object_id > 100 and type_name(user_type_id) = 'nvarchar' Erro: Mensagem 259, Nível 16, Estado 1, Linha 1 As atualizações ad hoc em catálogos do sistema não são permitidas. Parte superior do formulário Parte inferior do formulário Parte superior do formulário _____ Atenciosamente, http://www.vienasistemas.com.br/assinatura.png Pedro Henrique Gomes Projetos e Desenvolvimento ( MG (37) 3213-4855 * <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] 8 <http://www.vilesoft.com.br/> www.vilesoft.com.br http://www.vienasistemas.com.br/images/bn_franquia_pegn.gif Parte inferior do formulário Parte superior do formulário "O emitente desta mensagem é responsável por seu conteúdo e endereçamento. Cabe ao destinatário cuidar quanto ao tratamento adequado. Sem a devida autorização, a divulgação, a reprodução, a distribuição ou qualquer outra ação em desconformidade com as normas internas da Vilesoft são proibidas e passíveis de sanção disciplinar, cível e criminal." "The sender of this message is responsible for its content and addressing. The receiver shall take proper care of it. Without due authorization, the publication, reproduction, distribution or the performance of any other action not conforming to Vilesoft internal policies and procedures is forbidden and liable to disciplinary, civil or criminal sanctions." " El emisor de este mensaje es responsable por su contenido y direccionamiento. Cabe al destinatario darle el tratamiento adecuado. Sin la debida autorización, su divulgación, reproducción, distribución o cualquier otra acción no conforme a las normas internas de Vilesoft están prohibidas y serán pasibles de sanción disciplinaria, civil y penal." Parte inferior do formulário [As partes desta mensagem que não continham texto foram removidas]