Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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 VS SchemaCompare:进行表更新_Sql Server_Visual Studio_Visual Studio 2010_Schema Compare - Fatal编程技术网

Sql server VS SchemaCompare:进行表更新

Sql server VS SchemaCompare:进行表更新,sql-server,visual-studio,visual-studio-2010,schema-compare,Sql Server,Visual Studio,Visual Studio 2010,Schema Compare,有人知道Visual Studio中的SchemaCompare(目前使用2010)如何确定如何处理[SQL Server 2008R2]数据库表更新(列数据类型、可选性等) 这些选择包括: 使用单独的altertable语句 创建一个新表,将旧数据复制到新表中,重命名旧表,然后才能重命名新表以使用正确的名称 我这样问是因为我们遇到了一个涉及(乐观锁定)的情况。如果SchemaCompare使用新的表方法,则时间戳列值将发生变化,并给任何使用旧时间戳值的人带来问题。我相信Schema Com

有人知道Visual Studio中的SchemaCompare(目前使用2010)如何确定如何处理[SQL Server 2008R2]数据库表更新(列数据类型、可选性等)

这些选择包括:

  • 使用单独的
    altertable
    语句
  • 创建一个新表,将旧数据复制到新表中,重命名旧表,然后才能重命名新表以使用正确的名称

我这样问是因为我们遇到了一个涉及(乐观锁定)的情况。如果SchemaCompare使用新的表方法,则
时间戳
列值将发生变化,并给任何使用旧
时间戳
值的人带来问题。

我相信Schema Compare采用了与此处描述的VSTSDB相同的CREATE-COPY-DROP-RENAME(CCDR)策略:


应该能够通过运行比较并编写部署脚本来确认这一点,否?

应该很容易通过SQL Profiler找到。我的钱会在
altertable
变量上。在某些情况下,它会生成
altertable
语句。然而,我唯一一次看到这种情况是在我对一个表使用
altertable
语句并立即将原始数据库与更新的数据库进行比较之后不久。在这种情况下,我只是添加了新的列;SQLServer只是将它们追加到表的末尾。通常,它会创建、复制、删除和重命名,所以我有点惊讶。如果在表的末尾添加列,它将使用ALTERTABLE。