Как изменить CHARACTER_MAX_LENGTH конкретных таблиц

У меня есть несколько таблиц, в которых у меня есть столбцы, которые нужно связать с помощью внешних ключей, проблема в том, что некоторые из этих столбцов имеют разные character_max_length, как я могу обновить эти конкретные таблицы?

Пример выбора для столбца:

SELECT column_name, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE UPPER(column_name) LIKE '%MUNT%'

что дает мне следующее:

теперь скажу, что я должен изменить все из них на 5

Я использовал этот код раньше, чтобы изменить типы данных, может быть, это может немного помочь?

Спасибо, что рассмотрели мой вопрос

2 ответа

Ты пробовал:

Alter tabel tableName alter column columnName NVARCHAR(5)

Или попробуйте эту более общую версию:

use [YourDatabaseName]

declare @tn nvarchar(128)
declare @cn nvarchar(128)
declare @sql as nvarchar(1000)

declare c cursor for 
 select table_name,column_name
 from information_schema.columns 
 where TABLE_NAME not in (select TABLE_NAME from INFORMATION_SCHEMA.VIEWS)
 AND UPPER(column_name) LIKE '%MUNT%'
open c
fetch next from c into @tn, @cn

while @@FETCH_STATUS = 0
begin
 set @sql = 'alter table ' + @tn + ' alter column ' 
 + @cn + ' nvarchar(5)'
 exec sp_executesql @sql
 fetch next from c into @tn, @cn
end
close c
deallocate c


Вы изменяете определение таблицы либо через пользовательский интерфейс, либо используя ALTER TABLE

licensed under cc by-sa 3.0 with attribution.