1

我对 SQL Server 相当陌生。我已经完成了基本的管理、备份等工作。我还花了 2 年时间为一家软件公司做 MySQL,为他们的 MySQL 定制程序提供软件支持。我主要是一个技术人员(桌面,网络),但我对这个数据库的东西很感兴趣!

我从一家运行 SQL Server 2005 的公司开始,需要做一些事情,而且我在语法上比任何事情都苦苦挣扎。该公司有 4 个 SQL Server 为 4 个不同的位置运行相同的数据库(程序方面)。

我要做的是将更新后的成本价目表从表 1 复制到具有 * 标准的其他表中。基本上table.parts从复制server1.partsserver2.parts * currencyconvertion field * markup (%)

那一点似乎很容易,除非我无法链接数据库。我输入的服务器名称包含 - 并且语法错误,例如uk-server1 'can't find 'uk'?另外我不确定 4 部分地址是否正确的服务器名、数据库名、模式、表?

对了。以前尝试时我无法链接两台服务器。我现在已经解决了这个问题,服务器现在已链接。有人告诉我,可能需要 [] 引用''服务器名称。我试过这个没有成功。问题似乎是具有 - uk-efacs 的服务器的名称。一旦我输入这个并记住它现在已链接,错误是找不到服务器 efacs 一个英国是错误的?还没有准备好完整的服务器名称?为什么?

通过反复试验发现这一点只需要 [] 通过服务器名称,即 [uk-efacs].db.table.field。现在可以了,只需要处理我的语法,因为查询显示错误。

4

1 回答 1

0

Try creating a Linked Server record on the server you're running this from. In Object Explorer (in SSMS) expand Server Objects, right click Linked Servers and select new. Select SQL Server and type the name of your remote server and then try your query again. Bit puzzled as the snippet you provided

update partmaster 
set partmaster.fsunit = uk-efacs.efacsdb.partmaster.fsunit * uk-efacs.efacsdb.currency.currate * 1.32 

Seems to parse just fine.

于 2012-04-27T10:43:24.437 回答