2015-01-27 6 views
0

У меня есть проект базы данных 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, кроме как по одному описанию каждой таблицы и изменению значения по умолчанию?

+0

Если этот запрос дает имена таблиц, то вы динамически создаете операторы 'alter' для изменения таблиц в цикле. например ''alter table' + result.tablename + 'change ....'' –

+0

Это изменит фактическую базу данных, сидящую на сервере БД, а не файлы .sql, составляющие проект базы данных. – Aaroninus

+2

Найти и заменить во всех * .sql файлах в проекте будет работать, чтобы сделать это в проекте. Не уверен, как это будет обрабатывать изменения на ваших серверах. Сначала я попробую найти/заменить, а потом, возможно, посмотрю, нужно ли вам каким-то образом настроить рефакторинг для обработки рефакторинга. –

ответ

1

Найти и заменить на все * .sql файлы в проекте будет работать, чтобы сделать это в проекте. Сначала я попробую найти/заменить, а потом, возможно, посмотрю, нужно ли вам каким-то образом настроить рефакторинг для обработки рефакторинга.

 Смежные вопросы

  • Нет связанных вопросов^_^