批量更改数据库项目中的列默认值

Mass change column default values in database project

我有一个 Visual Studio 2013 数据库项目,我想在其中将默认值为 newid() 的所有 GUID 列更改为 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 tables 中共有 62 列。

在 Visual Studio 中,除了一个一个地访问每个 table 定义并更改默认值之外,还有其他方法可以做到这一点吗?

查找并替换项目中的所有 *.sql 文件可以在项目中执行此操作。我会先尝试 find/replace,然后看看您是否需要以某种方式调整重构日志来处理重构。