Invalıd Column name hatalarında düzgün veritabanında aşağıdaki sorguyu çalıştırarak hata alanınan kolonun hangi tabloda olduğu, tipi ve uzunluğuna ulaşarak otomatik alter table sorgusunu oluşturabilirsiniz. İşlem öncesi yedek aldıktan sonra yapmanız gereken iki işlem var
1- Sorguda Where alanındaki Column Name alanında InvalıdColumn name hatasısında gelen kolon adı yazılmalı,
2- Sorgu çalıştırılıp gelen mesajdaki kolon ekleme sorgusunda, firma ve dönem bağımlı bir kolon ise firma ve dönem numarası değiştirilmeli.
SELECT 'ALTER TABLE ' + TABLE_NAME +' '+
'ADD'+' ' + COLUMN_NAME + ' ' + DATA_TYPE +
CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1 THEN '(max)'
WHEN DATA_TYPE in ('text','ntext') THEN ''
WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL
THEN '('+(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)+')' )
ELSE
ISNULL(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH),' ')
END +' '+
CASE IS_NULLABLE WHEN 'YES' THEN 'NULL' WHEN 'No' THEN 'NOT NULL'
END
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME NOT LIKE ('LV_%') AND COLUMN_NAME='EINVOICETYPE'-- Bu alana Invalid column name hatasında gelen kolon adı ' ' içerisine yazılmalıdır.