SQL Server教程:读取第三方数据库的数据
作者: cnd8, 出处:IT专家网论坛, 责任编辑: 陈子琪, 2010-04-21 13:00 现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到A,AU / NZ 的表结构同Master 数据结构基本一致。 现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到A,AU / NZ 的表结构同Master 数据结构基本一致。 这样一来,当把AU Replication 到 Master 后,在把 NZ Replication 到 Master , Master 里的就只剩 NZ 的数据了。反过来就只有AU的了,具体的Replication 是怎么一回事,我也不懂,也没有细看。 如果能在Master 里直接操作 AU 和 NZ 就好了。 SQLServer 有函数: OPENROWSET 和 OPENDATASOURCE 这两个函数不但能实现从另外的数据库读数据,而且还能从EXCEL、TXT, ORACLE, ODBC 等读数据。 --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure SELECT * from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=SQLServerName;User ID=sa;Password=xxx' ).Help.dbo.Help_Category 或 select * from openrowset( 'SQLOLEDB ', 'SQLServerName'; 'sa'; 'xxx', Help.dbo.Help_Category ) --关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure 但是,这样写着有点复杂,而且不便于维护,假如数据库密码改变了,就需要把一个一个把密码改正。 Oracle 里有 DB Link, 而且语法非常简洁。 查了一下帮助,SQLServer 里有 "链接服务器" 这个东东。要创建 链接服务器需要用到SQLServer 的一个系统存储过程: sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ]
相关文档:
Database Level
- shrinkdb
- shrinkfile
SQL Server 2008
1) Right click database
2) Tasks
3) Shrink
4) Database or file
Table level
- compression
SQL Server 2008
1) Right click table
2) Storage
3) Manage Compression ......
OUTPUT子句是SQL Server 2005 中对INSERT、UPDATE和DELETE新增的,今天看见园子里有人提起(SQL2005中返回修改后的数据),就在这里记录一下它的语法。
OUTPUT { DELETED | INSERTED | from_table_name }. {* | column_name } [,...n]
&nbs ......
如果SQL Server程序员想将表达式从一种换为另一种,他可以从SQL Server 7和2000中自带的两种功能中做出选择。在存储过程或其他情况下,我们常常需要将数据从datetime型转化成varchar型;CONVERT和CAST就可以用于这种情况。
由于SQL Server提供两种功能,因此应该选择哪种功能或应该在哪种情况下使用该功能就很容易让 ......
在网上搜了 好多
有拼接字符串的,不过我觉得 既然 sql 除了 dateTime 这个类型 就不会让你 去截取字符串 (这样多麻烦呀)
于是再搜 ,找到一个比较好的 现在介绍一下
DATEDIFF(DAY,addDate, '2010-04-23') = -1
什么意思呢?听我慢慢分解
DATEDIFF 不用多少 函数名
DAY ......
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CR ......