Mar*_*urd 2 sql sql-server-2000 sql-update
在SQL Server 2005中,tablename可用于区分您所指的表:
UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE tablename.ID=u.ID
Run Code Online (Sandbox Code Playgroud)
在SQL Server 2000中,这会导致
服务器:消息107,级别16,状态2
列前缀"tablename"与查询中使用的表名或别名不匹配.
试
UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE LinkedServer.database.user.tablename.ID=u.ID
Run Code Online (Sandbox Code Playgroud)
结果是
服务器:消息117,级别15,状态2
数字名称"LinkedServer.database.user.tablename"包含的内容超过最大前缀数.最大值为3.
而且当然,
UPDATE LinkedServer.database.user.tablename
SET val=u.val
FROM localtable u
WHERE ID=u.ID
Run Code Online (Sandbox Code Playgroud)
结果是
服务器:消息209,级别16,状态1
不明确的列名称"ID".
(实际上搜索"数字名称包含的内容超过最大数量.最大数量为3."我找到了答案,但我已经输入了这个问题,我将发布它!:-))
怎么样:
UPDATE ls
SET ls.val=u.val
FROM LinkedServer.database.user.tablename ls
JOIN localtable u ON ls.ID = u.ID
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13266 次 |
最近记录: |