SQL Server [分布式查询/事务]
分布式查询
OPENROWSET
从Excel取数据
SELECT * from OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=d:\1.xls',[Sheet1$])
从Oracle取数据
SELECT * from OPENROWSET('MSDAORA.1','NetServiceName';'User';'Password','SELECT * from OracleTalbe')
Linked Server(for Oracle)
建立Linked Server
sp_addlinkedserver'Allies', 'Oracle', 'MSDAORA.1', 'NetServiceName'
Oracle的Login
sp_addlinkedsrvlogin'Allies', FALSE, 'SQLServerLogin', 'OracleUser', 'OraclePassword'
从Oracle查询数据
SELECT*from OPENQUERY( Allies, 'SELECT * from OracleTalbe'),或者
SELECT*from Allies..OracleUser.OracleTalbe
修改Linked Server的Server Option
sp_serveroption'Allies', 'Option Name', 'Option Value'
例如
sp_serveroption'OraDC', 'rpc out', 'true'
sp_serveroption'OraDC', 'rpc', 'true'
向Oracle插入数据(还没有用过)
INSERT INTO OPENQUERY(Allies, 'SELECT ... from OracleTalbe WHERE 1=2') VALUES ( ... )
删除Linked Server
sp_dropserver'Allies', 'droplogins'
注意:使用OPENROWSET、OPENQUERY时,SQL Server不对提交的SQL语句做任何检查,直接将语句提交给Linked Server进行处理;使用四部分命名法时,SQL Server可能从Linked Server上读取被引用表的数据到SQL Server,然后在SQL Server上来完成其它操作。
设置SQL Server到Oracle的Linked Server,可参考以下KB文章:
How to set up and troubleshoot a linked server to Oracle in SQL Server
Limitations of Microsoft Oracle ODBC Driver and OLEDB Provider
Techniques to Debug Connectivity Issues to an Oracle Server Using the ODBC Driver
相关文档:
'在引用里添加ADODB
Public vscn As ADODB.Connection
Public SQLString As String
SQLString = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=用" & _
"户;Initial Catalog=数据库名;Data Source=服务器名"
  ......
Dim rs As ADODB.Recordset
Dim sqlstr As String
'查询
sqlstr = "select * from 表名 where 字段名 = '" & 查询的内容 & "'"
rs = VScn.Execute("" & SqlSt ......
从网络上收刮了一些,以备后用
create function fun_getPY(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)
set @PY=''
while len(@str)>0
begin
set @word=left(@str,1)
--如果非汉字字符,返回原字符
set @PY=@PY+(case when unicode(@word) b ......
一﹕
触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完
整性约`束。
二﹕ SQL
Server为每个触发器都创建了两个专用表 ......