1. 程式人生 > >一些SQL語句,遠端伺服器事務設定

一些SQL語句,遠端伺服器事務設定

一: 查詢資料庫版本的語句   

  •   1.  SELECT  SERVERPROPERTY('ProductVersion'),ServerProperty('ProductLevel'),ServerProperty('Edition');

         查詢結果: 9.00.1399.06    RTM    Developer Edition

  • 2. SELECT ◎◎Version
  •     Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)   Oct 14 2005 00:33:37   Copyright (c) 1988-2005 Microsoft Corporation  Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)

這樣查詢出來的兩個版本到底一樣嗎。按照第二中方法查出來的是sp2的版本。但是第一種結果查出來的不是sp2的版本。

二:Case when ..Then..Else..End

      select  a.* ,Case when a.name=b.name Then a.name else b.name end  from SDt_yf1..losttimetransaction a,common_yf2_errlog..Organizationunit b

本來想把按照條件的losttimetransaction表中的資料查出來,沒想到資料做了笛卡爾機。如果a表有10條,b表有10條,結果是100條。不是想要的10條。所以要麼加where條件。要麼用其他的方法。

    改變後的方法:

   select  a.* ,a.name=(select b.name from common_yf2_errlog..Organizationunit b where a.name=b.name)  from SDt_yf1..losttimetransaction a

三:連線兩個伺服器的語句

     (1)假如有兩臺伺服器:一臺:YJFGDB01,一臺:CMOF08.向CMOF08插入資料

   INSERT INTO CMOF08.SDT.DBO.DYEMPSUMM

   FROM YJFGDB01.SDT.DBO.DYEMPSUMM


如果報錯的話:

Msg 7202, Level 11, State 2, Line 5
Could not find server 'tai' in sysservers. Execute sp_addlinkedserver to add the server to sysservers.

說明沒有在你執行語句的那臺伺服器把對方加進去。解決辦法如下:    

在其中一臺伺服器上執行這條語句:“伺服器名稱”為對方的電腦名稱:

     Exec  sp_addLinkedServer N'伺服器名稱',N'SQL SERVER'

    加入後,

  use master

      SELECT * FROM SYS.SERVERS 檢視是否加入剛才的伺服器名稱

   (2)

   當我做資料庫合併的時候,在其中一臺伺服器中修改另外一臺資料庫中的資料,不加事務的時候沒有問題。

但是我想加上事務,以便發生錯誤的時候回滾。

  當我執行下面的語句時:

  set xact_abort on
begin distributed tran gg

insert into  sdt.common.dbo.color(colorcode)
values('gg')

出現下面的錯誤:

OLE DB provider "SQLNCLI" for linked server "alex" returned message "The partner transaction manager has disabled its support for remote/network transactions.".
Msg 7391, Level 16, State 2, Line 5
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "alex" was unable to begin a distributed transaction.

這個錯誤說明你這臺伺服器,或者對方電腦沒有配置好MS DTC(Microsoft Distributed Transaction Coordinator  微軟 分散式事務協調器)

1。先配置sql server 2005 資料庫中的配置:

  exec sp_configure 'show advanced options',1
 exec sp_configure 'remote access',1
 exec sp_configure 'remote admin connections',1
 exec sp_configure 'remote proc trans',1

 運行了上面這四個語句之後出現下面的提示:說明更改成功

 Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.
Configuration option 'remote access' changed from 0 to 1. Run the RECONFIGURE statement to install.
Configuration option 'remote admin connections' changed from 1 to 1. Run the RECONFIGURE statement to install.
Configuration option 'remote proc trans' changed from 0 to 1. Run the RECONFIGURE statement to install.

 然後執行:reconfigure with override 更改成功。

  然後配置系統上的MS DTC:說明一下(windows xp 中的配置和windows server 2003 中的配置有一點不一樣,就是在新增刪除的組建中:windows xp 沒有Application Server 元件)

2。下面是在windows xp sp2 上的配置圖:

 (1)開始-設定-控制面板-管理工具-元件服務(或者Run->dcomcnfg 直接進去元件服務)

  進入介面點選(Console Root->Componet Services->Computers->My Computer)

(2) Right click My Computer->property->(MSDTC)->(CLICK Security Configuration...)

  

(3)進去 Security Configuration 介面:

確保選中了下列選項:

Network DTC Access

Allow Remote Clinets Allow Remote Admnistration

Allow Inbound Allow OutBound

Enable Transaction Internet Protocal(TIP)Transactions

Enable XA Transactions

DTC Logon Account 一定要設定為 NT Authority/NetworkService

選擇 No Authentication Required

 

         到這裡設定就完了,完了之後重新啟動伺服器就ok。

    3. windows server 2003 中的設定:

     開啟新增刪除程式如圖:click Add/Remove windows componer ->select Application Server ->click Details

     -> select   Enable network COM+ access,  and Enable network DTC access. 其他設定按照windows xp 的設定。

相關推薦

一些SQL語句遠端伺服器事務設定

一: 查詢資料庫版本的語句 :      1.  SELECT  SERVERPROPERTY('ProductVersion'),ServerProperty('ProductLevel'),ServerProperty('Edition');      

執行多條SQL語句實現資料庫事務(不可傳入Sql引數)

          《圖書館維護系統》的時候我負責任務管理模組,由於一些業務有些複雜,所以想用儲存過程,但是賈琳師哥說了一堆儲存過程的不好,讓我用sql語句。好吧,用就用吧,但是吧,大家都知道執行多條sql語句,是需要用到事務的(保持資料一致性),儲存過程中加事務我還是會滴

Sql Server資料庫事務介紹(二)---Sql語句SqlTransaction和TransactionScope的使用方法

      本節主要介紹Sql語句,SqlTransaction和TransactionScope這三種使用事務的方法。       本節的所有例子都在sql server 2008和vs 2008環境下執行通過,如果沒有sql server2008,那麼使用sql serv

PB中自動生成的sql語句在comment不存在時自動使用name欄位作為註釋的設定方法

然後在選單database->generate database 的format下面選中generate name in empty  comment(這個一定要選上這個是將name作為註釋生成的選擇。然後你

MySql一些sql語句

數據 logs log 語句 into 結果 tab from span 將tableA中的數據查詢結果插入tableB中 insert into tableB(colB_1,colB_2) select colA_1,colA_2 from tableA; .

sql語句無法綁定由多個部分組成的標識符 "xxx"

什麽 lec title id字段 數據庫 pan 代碼 今天 esc String sql = "select TOP 7 news_id,news_title,news_addtime,news_url from web_news_info a"

2.MySQL用戶管理常用SQL語句MySQL數據庫備份與恢復

MySQL用戶管理 常用MySQL語句 MySQL數據備份與恢復 [toc] MySQL用戶管理,重用SQL語句,MySQL數據庫備份與恢復 一、MySQL用戶管理 1.創建一個普通用戶並授權 首先啟動mysql,然後進入 [root@xavi ~]# /etc/init.d/mysqld sta

Oracle的sql語句查詢條件加括號與不加括號區別 -

ont 執行 ora 語句 oracl lar AC rac oracle 例如: SELECT ename, job, deptno FROM emp WHERE deptno in (10, 20) AND (ename like ‘%

常用sql語句SSC源碼開發堪稱經典

更改 sts str dsl where sele delect ofo 完全 1、查詢“001”課程比“002”課程成績高的所有學生的學號; select a.S# from (select S#,score from SC where C#=’001’) a,(sele

Excel生成批量SQL語句處理大量資料的好辦法

當有大量重複體力工作寫入或修改資料到資料庫中時,可以 第一,將Excel資料整理好了之後,通過SQL的匯入功能直接導進資料庫,但是得保證資料庫欄位和Excel的欄位一致。 第二,通過Excel來生成對應的SQL語句,直接將SQL語句複製到分析器裡面執行即可。 如:使用excel的

shell script中執行sql語句返回結果中文亂碼問題——在企業開發中的解決方案

問題描述 有一個需求,需要編寫一個指令碼向遠端資料庫拉取資料並生成一個檔案。在編寫完成並執行後,發現檔案中的中文為亂碼。 指令碼中的查詢命令如下所示: QUERY_CMD="mysql -h${HOST} -u${USER} -p${PWD} -sBN " SQL="SELECT

sql語句單表和多表

案例1-單表的curd 需求:     對一張表中的資料進行增刪改查操作     C:create 建立     U:update 修改     R:read  

oracle11g 分析sql語句SQL跟蹤

背景:公司採購了一個OA系統,資料庫是ORACLE的,沒有原始碼;有一些二次開發的介面           竟然是資訊中心部門採購的,一群不懂技術的人,都不知道選型,也不考慮後續擴充套件,真是日了狗。 需求:資訊中心要把所有OA流程,與之

面試遇到的一些SQL語句題目

最近忙著找工作,也面試了不少公司,做了不少筆試題目,現在把遇到的一些SQL 題目貼出來: 1.把以下表 year month amount 1991 1 1.1 1991 2 1.2 1991 3 1.3 1991 4 1.4 1992 1 2.1 1992 2 2.2 1992 3 2

oracle中一些sql語句 編寫操作

edate 服務 orm sql ascii 開始 pan format ssi -- 修改系統當前日期格式ALTER SESSION SET nls_date_format = "YYYY-MM-DD HH:MI:SS";-------------------------

前端之路:sql語句表中隨機獲取一條記錄(資料)。(或者獲取隨機獲取多條(記錄)資料)

<!--表中獲取隨機一條title 耗時0.01s id==隨機欄位,最好為表id--> SELECT * FROM `tableName` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `ta

如何在MySQL裡構造SQL語句自動給查詢出來的結果加一列從1開始的序號列

兩種辦法: 第一種:快捷 select (@i:[email protected]+1) as i,a.* from zakk_carinfo_201811 a,(select @i:=0) as it where CI_ThroughTime between "2018-11-2

MySQL使用者管理常用SQL語句MySQL資料庫備份與恢復

[toc] MySQL使用者管理,常用SQL語句,MySQL資料庫備份與恢復 擴充套件 SQL語句教程 http://www.runoob.com/sql/sql-tutorial.html 什麼是事務?事務的特性有哪些? http://blog.csdn.net/yenange/article/deta

必須瞭解的sql語句 從基礎開始到深度理解 !(備註:要從上往下依次執行)

–建立表practice create table practice( id varchar(11),–員工ID name varchar(11),–員工名稱 age int,–年齡 department varchar(11),–部門 entryt

mongodb查詢語句,對應成sql語句方便熟悉和使用

鍾偉海 [email protected]   2018-09 上面是mongodb查詢語句,下面是sql語句。對照著用,挺方便。 1:mongodb 中查詢最大值    db.getCollection('users  ').find({}).sort({"