作者wishwecan (Wish I can fly!)
看板Database
标题[系统] SQL server 2005无法连线
时间Thu Sep 18 00:39:22 2008
最近在两台电脑上设定了同一个资料库。
电脑A:别人帮忙设定的,可以由(local)连线登入,并使用以下的SQL语句查询:
select * from TABLENAME
电脑B:是将电脑A的资料库(*.mdf)复制到电脑B後,附加到电脑B的SQL server中,
不过电脑B很任性,不可以由(local)登入,一定要打电脑名称才能登入,
查询时,资料表的名称之前也要加上使用者名称:
select * from A.TABLENAME
^^
一定要加上,否则在程式中显示[无效的物件]。
在SQL server中显示以下讯息:
[讯息 208,层级 16,状态 1,行 1
无效的物件名称 'TABLENAME'。]
因为看到有一篇文章说到(local)与localhost的分别,
http://weblogs.asp.net/jgalloway/archive/2005/12/02/432062.aspx
(local)是named pipes、而localhost是TCP/IP。
因此,我尝试在SQL server组态管理员中将通讯协定的named pipes启用,
也新增了别名,但是(local)还是无法使用。
更困扰我的是SQL语句的使用必须加上使用者名称这点,
如此一来我的程式必须都加上它,以後如果资料库有异动,恐怕会有意外的麻烦,
请问板上各位先进,是否有经验可分享?谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.242.85
1F:推 rogertu:试试看修改该table的schema吧...用ALTER SCHEMA? 09/18 23:57
2F:→ wishwecan:感谢楼上,ALTER SCHEMA dbo TRANSFER A.TABLENAME 09/19 00:01