如果我在为客户发布的版本中添加 DDL 是否正确?

Is it right if I added the DDL in released version for customers?

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

如果我在运行时间添加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 命令将 运行。

嗯,它有效,但是...

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

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