关于跨数据库的存储过程 參考解決方法:比如操作涉及2個庫Test Test1做一個Select語句説明Select * From Test..TableName1, Test1..TableName2Where ..... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /********************链接数据库 *******************************/exec OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.存储过程名select * into 本地库名..表名 from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名或使用联结服务器:EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'GO然后你就可以如下:select * from 别名.库名.dbo.表名insert 库名.dbo.表名 select * from 别名.库名.dbo.表名select * into 库名.dbo.新表名 from 别名.库名.dbo.表名go 楼主已经说得够明白了.不跨服务器的不同数据库的操作,只需要在要操作的表前加上数据库名就行了.select * from 数据库1.dbo.表名select * from 数据库2.dbo.表名 /********************链接数据库 *******************************/exec OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.存储过程名select * into 本地库名..表名 from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名或使用联结服务器:EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'GO然后你就可以如下:select * from 别名.库名.dbo.表名insert 库名.dbo.表名 select * from 别名.库名.dbo.表名select * into 库名.dbo.新表名 from 别名.库名.dbo.表名go----------------------------------------这不是说得很清楚么??这段我觉得应当放到精华区30%的问题都可以使用这个做答案 我的触发器怎么删除不了 求一SQL语句 sql2000 查询语句急!!!!!!! 请问我访问另一台机子上的SQL数据库,当我访问系统数据表的时候没问题,可是访问我自己创建的表时说对象名无效是什么原因?在线等! 数据库恢复问题!各位大虾帮忙,急………………在线等 求救!sql跨服务器操作,使用update from更新远程表没有用,高手请进! 这个存储过程怎样写,有点难度,我写了一下,但不正确. VFP命令 日期处理问题?请教各位了! 请帮忙看看如何优化sql 疑问:在select子句中使用查询语句? 有谁知道SQL 2000的TDS协议(分不够可以再加)
/********************链接数据库 *******************************/
exec OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.存储过程名select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
select * from 数据库2.dbo.表名
exec OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.存储过程名select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go----------------------------------------
这不是说得很清楚么??
这段我觉得应当放到精华区
30%的问题都可以使用这个做答案