当前位置: 代码迷 >> Sql Server >> 合并字符串的奇怪有关问题
  详细解决方案

合并字符串的奇怪有关问题

热度:88   发布时间:2016-04-27 18:06:31.0
合并字符串的奇怪问题

图上覆盖掉的IP就是当前IP,执行出来的结果不一样。
也就是说第二个肯定也有循环,但是只能抓到最后一笔记录。谁帮忙解释下

------解决方案--------------------
第二条不要赋值,直接查出来有几条
------解决方案--------------------
貌似远程不会做累加的动作。。。
------解决方案--------------------
[email protected],最后的执行结果应该是NULL吧
可是楼主的结果不是NULL,为什么呢
------解决方案--------------------
远程的问题。。

参考一下这个方法

参考:

SQL code
create table #t(a varchar(20))insert into #t (a)SELECT 字段 FROM OPENROWSET('SQLNCLI', 'Server=远程IP;Uid=sa;Pwd=pwd',  'select * from dbname.dbo.tablename where ...') AS a;  goselect * from #t
------解决方案--------------------
这个应该要先创建链接服务器的吧?
------解决方案--------------------
按以下方法試試

SQL code
--遠程連接操作/******************************************************************************************************************************************************Tab表:/*ID 自增列         Name----------- ---------1           a2           b3           c*/存儲過程:/*create proc Passelect top 10 ID,Name from sysobjects*/整理人:中國風(Roy)日期:2008.06.06******************************************************************************************************************************************************/--遠程鏈接服務器機器名:Roy;實例名:Roy\SQL2005DE;登陸名:sa;密碼:Test2005;--創建鏈接服務器EXEC master.dbo.sp_addlinkedserver @server = N'ROY_LNK', @srvproduct=N'ROY_LNK', @provider=N'SQLOLEDB', @datasrc=N'Roy\SQL2005DE'--SQL05可用SQLNCLI\SQLOLEDBGOEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ROY_LNK', @locallogin = NULL , @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'Test2005'GO--刪除鏈接服務器--exec sp_dropserver 'roy_lnk','droplogins'--Selectselect * from roy_lnk.test.dbo.Tab--insertinsert roy_lnk.test.dbo.Tab(Name)--指定列Values('d')--updateupdate roy_lnk.test.dbo.Tab set Name='DD' where Name='d'--delete delete roy_lnk.test.dbo.Tab where Name='DD'用openrowset:--支持存儲過程select *from openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005','test.dbo.p')a--select select *from openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab)a--insertinsert openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab)(Name)values('EE')--update update openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab) set Name='EEE' where Name=N'EE'--deletedelete openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab) where Name=N'EEE'用openquery:--支持存儲過程--支持存儲過程select *  from openquery(roy_lnk, 'test.dbo.P')--selectSELECT * FROM openquery(roy_lnk, 'SELECT * FROM test.dbo.tab') --insertinsert openquery(roy_lnk, 'SELECT * FROM test.dbo.tab') (Name) values('F')--update update openquery(roy_lnk, 'SELECT * FROM test.dbo.tab') set Name='FF' where Name='F'--delete不支持是根據 OLE DB 提供者的功能而定--delete openquery(roy_lnk, 'SELECT * FROM test.dbo.tab')  where Name='FF' 用OPENDATASOURCE:--支持存儲過程select *  from OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').'test.dbo.p' --selectselect *  from OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab --insertinsert OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab(Name) values('H')--updateupdate OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab set Name='HH' where Name='H'--delete delete OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab where Name='HH'--與本機表數據對比時用別名select * from roy_lnk.test.dbo.Tab a join tab b on a.ID=b.ID
  相关解决方案