从另一个数据库更新SQL Server数据库

约旦

我有一个使用SQL Server 2008 R2的测试和生产环境。我想将一些列从测试环境更新为产品环境。我的查询对我来说很有意义,但始终会出错。非常感谢任何有关如何进行此操作的建议。

use [NGProd]

update nxmd_practice_web_text
set nxmd_practice_web_text.item_value = TST.item_value
from [TestSQL1].[NGTest].[dbo].[nxmd_practice_web_text] TST
where TST.nx_modified_by = '00000000-0000-0000-0000-000000002692'
  and nxmd_practice_web_text.item_id = 4100
  and nxmd_practice_web_text.nx_practice_id = TST.nx_practice_id

我收到以下错误:


无法准备消息8180,级别16,状态1,行1的语句。

消息306,级别16,状态2,行1
无法对文本,ntext和图像数据类型进行比较或排序,除非使用IS NULL或LIKE运算符。

item_valuentext,但我没有比较它。我正在设置它,因此此错误确实使我感到困惑。

我知道ntext不赞成使用数据类型,但是对此我无能为力。这是对在数千个表中具有数百万行数据的产品的付费。如果无法在以后的更新(每半年发布一次)中将其重新转换,则无法修改此行类型。

任何帮助是极大的赞赏。

谢谢你。

SqlZim

在尝试使用Sql 2008和Sql 2000服务器重新创建您的错误后,当我将nx_modified_by更改为ntext或Practice_id更改为ntext时,只能得到类似的错误。Sql Server 2008错误消息是:

消息402,级别16,状态1,第8行数据类型ntext和varchar在等于运算符中不兼容。

我猜nx_modified_by也是ntext(而不是unique_identifier),但是包括了注释掉的行,以防它是nx_practice_id。

试试这个:

use [NGProd]
go
update prod 
  set prod.item_value = tst.item_value 
  from NGProd.[dbo].[nxmd_practice_web_text] as prod
    inner join [TestSQL1].[NGTest].[dbo].[nxmd_practice_web_text] as tst
      on prod.nx_practice_id = tst.nx_practice_id
      /*
        on cast(prod.nx_practice_id as varchar(8000)) 
         = cast(prod.nx_practice_id as varchar(8000)) 
         --*/
  where prod.item_id = 4100
    and cast(tst.nx_modified_by as varchar(36)) 
      = '00000000-0000-0000-0000-000000002692'
    --and tst.nx_modified_by = '00000000-0000-0000-0000-000000002692'

另外,请确保在链接服务器属性上启用了“处理中”

Technet-链接服务器属性-允许进行中

允许进行中

SQL Server允许将提供程序实例化为进程内服务器。如果未设置此选项,则默认行为是在SQL Server进程外部实例化提供程序。在SQL Server进程外部实例化提供程序可保护SQL Server进程免受提供程序中的错误的影响。在SQL Server进程之外实例化提供程序时,不允许更新或插入引用长列(文本,ntext或图像)的信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从一个数据库更新到另一个SQL Server 2012

来自分类Dev

如何将SQL Server数据库移动到另一个数据库?

来自分类Dev

SQL更新表使用另一个数据库中的表

来自分类Dev

SQL Server触发器删除另一个数据库

来自分类Dev

从 SQL Server 中的另一个数据库表插入选择

来自分类Dev

将记录从一个数据库复制到另一个数据库(Teradata到SQL Server)

来自分类Dev

MySQL从另一个数据库更新数据

来自分类Dev

从tmp数据库中的表插入并更新到另一个数据库中的表

来自分类Dev

perl使用来自另一个数据库的值更新oracle数据库

来自分类Dev

从tmp数据库中的表插入并更新到另一个数据库中的表

来自分类Dev

使用某些参数从另一个数据库更新SQL表,而仅更新某些参数

来自分类Dev

如何基于另一个数据库中满足的参数创建SQL数据库

来自分类Dev

使用数据从一个数据库更新到另一个数据库

来自分类Dev

使用冗长的IN子句更新到另一个数据库

来自分类Dev

如何使用另一个数据库表中的值更新表

来自分类Dev

MySQL从一个数据库插入另一个数据库

来自分类Dev

MySQL从一个数据库插入另一个数据库

来自分类Dev

根据数据库列与另一个数据库列的相似性更新数据库列

来自分类Dev

SQL触发器的语法,用于在另一个数据库中插入数据以及更新另一个数据库中的任何字段

来自分类Dev

SQL动态地将数据从数据库存储到另一个数据库

来自分类Dev

在SQL中将数据从一个数据库导出到另一个数据库时,忽略重复的主键

来自分类Dev

SQL 查询:将数据从一个数据库移动到另一个数据库

来自分类Dev

MySql-从一个数据库更新到另一个数据库

来自分类Dev

当另一个数据库插入记录时,如何更新一个数据库?

来自分类Dev

在另一个数据库中访问sys.sql_modules

来自分类Dev

将另一个数据库加入SQL查询

来自分类Dev

另一个数据库中的SQL外键

来自分类Dev

使用oracle sql developer从一个数据库复制到另一个数据库-连接失败

来自分类Dev

SQL,将数百万条记录从一个数据库移动到另一个数据库

Related 相关文章

  1. 1

    从一个数据库更新到另一个SQL Server 2012

  2. 2

    如何将SQL Server数据库移动到另一个数据库?

  3. 3

    SQL更新表使用另一个数据库中的表

  4. 4

    SQL Server触发器删除另一个数据库

  5. 5

    从 SQL Server 中的另一个数据库表插入选择

  6. 6

    将记录从一个数据库复制到另一个数据库(Teradata到SQL Server)

  7. 7

    MySQL从另一个数据库更新数据

  8. 8

    从tmp数据库中的表插入并更新到另一个数据库中的表

  9. 9

    perl使用来自另一个数据库的值更新oracle数据库

  10. 10

    从tmp数据库中的表插入并更新到另一个数据库中的表

  11. 11

    使用某些参数从另一个数据库更新SQL表,而仅更新某些参数

  12. 12

    如何基于另一个数据库中满足的参数创建SQL数据库

  13. 13

    使用数据从一个数据库更新到另一个数据库

  14. 14

    使用冗长的IN子句更新到另一个数据库

  15. 15

    如何使用另一个数据库表中的值更新表

  16. 16

    MySQL从一个数据库插入另一个数据库

  17. 17

    MySQL从一个数据库插入另一个数据库

  18. 18

    根据数据库列与另一个数据库列的相似性更新数据库列

  19. 19

    SQL触发器的语法,用于在另一个数据库中插入数据以及更新另一个数据库中的任何字段

  20. 20

    SQL动态地将数据从数据库存储到另一个数据库

  21. 21

    在SQL中将数据从一个数据库导出到另一个数据库时,忽略重复的主键

  22. 22

    SQL 查询:将数据从一个数据库移动到另一个数据库

  23. 23

    MySql-从一个数据库更新到另一个数据库

  24. 24

    当另一个数据库插入记录时,如何更新一个数据库?

  25. 25

    在另一个数据库中访问sys.sql_modules

  26. 26

    将另一个数据库加入SQL查询

  27. 27

    另一个数据库中的SQL外键

  28. 28

    使用oracle sql developer从一个数据库复制到另一个数据库-连接失败

  29. 29

    SQL,将数百万条记录从一个数据库移动到另一个数据库

热门标签

归档