如果我为客户添加了已发布版本的DDL,这是对的吗?

时间:2018-03-26 10:00:02

标签: sql-server tsql versioning

我想为客户部署新版本,我想确保数据库结构与新版本兼容。

如果我在运行时添加了DDL,那么在软件工程领域是否可以,例如

 IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'person_data' AND COLUMN_NAME = 'hsssoid') BEGIN ALTER TABLE person_data ADD hsssoid varchar(20) END

每次客户计算工资时都会运行这些DDL命令。

1 个答案:

答案 0 :(得分:2)

嗯,它有效,但是......

在我看来,我不会使用这种方法,因为运行应用程序的数据库用户必须能够访问架构信息,这可能是生产环境中的问题,特别是如果您有其他人部署您的应用程序。他们可能会为db用户添加一些安全限制。

最好的方法是将此DDL语句添加到部署脚本(自动或手动)。您可以使用数据库项目来帮助您实现此目的。