通常情况下,我们的CRUD操作都在单一数据库中进行。但是,也可能会遇到需要进行跨数据交流的情况。对此,我以跨数据库进行表的访问为例,稍微总结了下。

一、同SQL SERVER

这个最简单。直接在表名前加上"[数据库名]."就可以了。

例:

SELECT * FROM [DestinationDBName].dbo.DestinationTableName

主要介绍两种方法:

(一)通过链接服务器

1.先执行系统存储过程 sp_addlinkedserver :

EXEC sp_addlinkedserver @server='DestinationDBAlias',--目标数据库的别名,在连接并登录后,就可以用它来访问数据@srvproduct='',@provider='SQLOLEDB',@datasrc='DestinationServerIP\ServerName'--通常用"IP\端口名"组成,如果服务器上只装了一个MSSQL SERVER,或者装了多个MS SQLSERVER,但要访问的是默认端口,就不用加端口名
EXEC sp_addlinkedsrvlogin @rmtsrvname='DestinationDBAlias',--注意这里的名字应与第一步sp_addlinkedserver中@server值一致@useself='false',@locallogin=NULL,@rmtuser='UserName',@rmtpassword='Password'

例:

SELECT * FROM [DestinationDBAlias].dbo.DestinationTableName
EXEC sp_dropserver @server='DestinationDBAlias',--注意这里的名字应与第一步sp_addlinkedserver中@server值一致@droplogins='droplogins'
SELECT * FROM OPENDATASOURCE('SQLOLEDB', --provider_name'Data Source=DestinationServerIP;User ID=UserName;Password=Password' --provider_string(datasource;user_id;password)).[DestinationDBAlias].dbo.DestinationTableNameSELECT * FROM OPENROWSET('SQLOLEDB',--provider_name'DestinationServerIP';'UserName';'Password',--provider_string(datasource;user_id;password)'SELECT * FROM [DestinationDBAlias].dbo.DestinationTableName')--query_string

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 《Android开发从零开始》——25.数据存储(4)
  4. Android系统配置数据库注释(settings.db)
  5. Android中不同应用间实现SharedPreferences数据共享
  6. android图表ichartjs
  7. Android内容提供者源码
  8. android SharedPreferences
  9. Android(安卓)Paging组件Demo

随机推荐

  1. android环境搭建及改变默认avd路径
  2. Android 属性动画(Property Animation) 源
  3. [better practice系列]Android处理好acti
  4. It's Android Time:程序员创富有道
  5. [置顶] 3D引擎--可移植到Android的开源的
  6. Android线程的学习
  7. 重构博客园Android App
  8. Android(安卓)PowerImageView实现,可以播
  9. 博文视点大讲堂35期-It's Android Time:程
  10. Android AppTheme 系統預設樣式android:T