У меня есть проект базы данных Visual Studio 2013, в котором я хотел бы изменить все столбцы GUID с по умолчанию newid()
до newsequentialid()
.Значения по умолчанию для столбца массового изменения в проекте базы данных
Используя следующий запрос, чтобы определить столбцы:
SELECT so.name AS table_name,
sc.name AS column_name,
sm.text AS default_value
FROM sys.sysobjects so
JOIN sys.syscolumns sc ON sc.id = so.id
LEFT JOIN sys.syscomments SM ON sm.id = sc.cdefault
WHERE so.xtype = 'U'
AND sm.text = '(newid())'
ORDER BY so.[name], sc.colid
есть в общей сложности 62 колонн в 62 таблицах.
Есть ли способ сделать это в Visual Studio, кроме как по одному описанию каждой таблицы и изменению значения по умолчанию?
Если этот запрос дает имена таблиц, то вы динамически создаете операторы 'alter' для изменения таблиц в цикле. например ''alter table' + result.tablename + 'change ....'' –
Это изменит фактическую базу данных, сидящую на сервере БД, а не файлы .sql, составляющие проект базы данных. – Aaroninus
Найти и заменить во всех * .sql файлах в проекте будет работать, чтобы сделать это в проекте. Не уверен, как это будет обрабатывать изменения на ваших серверах. Сначала я попробую найти/заменить, а потом, возможно, посмотрю, нужно ли вам каким-то образом настроить рефакторинг для обработки рефакторинга. –