我想为客户部署新版本,我想确保数据库结构与新版本兼容。
如果我在运行时添加了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命令。
答案 0 :(得分:2)
嗯,它有效,但是......
在我看来,我不会使用这种方法,因为运行应用程序的数据库用户必须能够访问架构信息,这可能是生产环境中的问题,特别是如果您有其他人部署您的应用程序。他们可能会为db用户添加一些安全限制。
最好的方法是将此DDL语句添加到部署脚本(自动或手动)。您可以使用数据库项目来帮助您实现此目的。