Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 根据模式或脚本比较或检查数据库中的表和其他对象_Sql Server_Database_Tsql_Database Schema - Fatal编程技术网

Sql server 根据模式或脚本比较或检查数据库中的表和其他对象

Sql server 根据模式或脚本比较或检查数据库中的表和其他对象,sql-server,database,tsql,database-schema,Sql Server,Database,Tsql,Database Schema,我正在asp.net站点中执行一种自检安装页面,其中现有数据库需要根据最新架构进行更新。最好的方法是什么?以前,我们使用一个RedGate Wins软件来比较数据库,并生成一个更新脚本,以便在现有客户端数据库上执行。RedGate提供了一个API,因此它可以在没有GUI的情况下运行。但不确定这会如何影响许可 否则,一些想法: 测试缺少的对象并创建 尽可能在代码上运行ALTERs 如果版本(在udf或表格中)较低,请运行脚本 如果您有一个脚本,它可以执行一个完整的事务升级,比如说redgate

我正在asp.net站点中执行一种自检安装页面,其中现有数据库需要根据最新架构进行更新。最好的方法是什么?以前,我们使用一个RedGate Wins软件来比较数据库,并生成一个更新脚本,以便在现有客户端数据库上执行。

RedGate提供了一个API,因此它可以在没有GUI的情况下运行。但不确定这会如何影响许可

否则,一些想法:

  • 测试缺少的对象并创建
  • 尽可能在代码上运行ALTERs
  • 如果版本(在udf或表格中)较低,请运行脚本
如果您有一个脚本,它可以执行一个完整的事务升级,比如说redgate,那么您可以使用这个脚本:您所需要的只是一个测试来决定是否运行它


一点:进行DDL更改需要db_所有者或DDL_管理员权限:您的应用程序是否每天都使用这些权限运行?

谢谢gbn。没有意识到红门有api。目前,不更新数据库对象是可以的,但要检查数据库是否仍然是最新的,否则我们将使用db owner帐户之一手动运行脚本。不清楚,但这是一个示例。有效地运行命令行比较