Eu tenho um monte de tabelas com muitas colunas de tipo de dados ntext
. Desejo alterar todas essas colunas em todas as tabelas de um banco de dados específico para nvarchar(max)
, devido à depreciação planejada (EDIT: também porque não posso usar essas colunas com DISTINCT
, GROUP BY
etc.) . É possível fazer isso sem usar ALTER TABLE
manualmente ALTER COLUMN
para cada tabela?
Estou usando o MS SQL Server 2008.
Não, não há mágica ou aceno de mão aqui. Seria ótimo se sinônimos, digamos, fossem aplicados a tipos, mas não é o caso. Se você quiser tornar essas colunas cidadãos de primeira classe, precisará alterar a tabela. Você pode automatizar isso até certo ponto, embora eu não poste código para ajudar com isso, a menos que você especifique o que quer dizer exatamente com "manualmente" e por que acha que isso será um fardo significativo que você deseja evitar.
Para automatizar isso, você poderia dizer:
Dito isso, você provavelmente não deseja usar essas colunas com distinto / grupo de qualquer maneira.
Não, se você quiser alterar o tipo de coluna, terá que usar uma instrução ALTER COLUMN. Bem, isso não é verdade - você pode descartar a tabela e recriá-la - mas ALTER COLUMN é claramente superior :)