Вот некоторый код для циклического перебора всех столбцов именованной таблицы.Он просто выбирает их детали;вам нужно заполнить то, что вы делаете в цикле.
declare @tableName varchar(32)
select @tableName = 'tableName'
declare @i int
select @i = count(*) from INFORMATION_SCHEMA.COLUMNS
where Table_Name = @tableName
while @i > 0
begin
select * from INFORMATION_SCHEMA.COLUMNS where Table_Name = @tableName and Ordinal_Position = @i
select @i = @i-1
end
Поля, которые вас заинтересуют в представлении INFORMATION_SCHEMA.COLUMNS, это 'DATA_TYPE' и 'CHARACTER_MAXIMUM_LENGTH'
Я полагаю, что я также предполагаю, что внесенные вами изменения не изменят порядковые номера столбцов, но если бы они были, вы могли бы выбрать их по-другому.