A. 如何在一條sql語句中連接遠程資料庫,sql server 2000
建議使用鏈接伺服器
在一條sql語句中連接遠程資料庫可以使用OpenRowSet函數,下例即在語句中以Jet4.0介面鏈接了遠程資料庫Northwind.mdb,其他資料庫可參考其介面參數修改。
USE Northwind
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';'admin';'', Orders)
AS o
ON c.CustomerID = o.CustomerID
GO
以下是SQL Server 2005 聯機叢書資料,對Sql server 2000 依然有效。
OPENROWSET (Transact-SQL)
包含訪問 OLE DB 數據源中的遠程數據所需的全部連接信息。當訪問鏈接伺服器中的表時,這種方法是一種替代方法,並且是一種使用 OLE DB 連接並訪問遠程數據的一次性的臨時方法。對於較頻繁引用 OLE DB 數據源的情況,請改為使用鏈接伺服器。有關詳細信息,請參閱鏈接伺服器。可以在查詢的 FROM 子句中像引用表名那樣引用 OPENROWSET 函數。依據 OLE DB 訪問介面的功能,還可以將 OPENROWSET 函數引用為 INSERT、UPDATE 或 DELETE 語句的目標表。盡管查詢可能返回多個結果集,但 OPENROWSET 只返回第一個結果集。
OPENROWSET 還通過內置的 BULK 訪問介面支持大容量操作,正是有了該訪問介面,才能從文件讀取數據並將數據作為行集返回。
Transact-SQL 語法約定
語法
OPENROWSET
( { 'provider_name' , { 'datasource' ; 'user_id' ; 'password'
| 'provider_string' }
, { [ catalog. ] [ schema. ] object
| 'query'
}
| BULK 'data_file' ,
{ FORMATFILE = 'format_file_path' [ <bulk_options> ]
| SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB }
} )
<bulk_options> ::=
[ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]
[ , ERRORFILE = 'file_name' ]
[ , FIRSTROW = first_row ]
[ , LASTROW = last_row ]
[ , MAXERRORS = maximum_errors ]
[ , ROWS_PER_BATCH = rows_per_batch ]
參數
' provider_name '
字元串,表示在注冊表中指定的 OLE DB 訪問介面的友好名稱(或 PROGID)。provider_name 沒有默認值。
' datasource '
對應於特定 OLE DB 數據源的字元串常量。datasource 是要傳遞給訪問介面的 IDBProperties 介面的 DBPROP_INIT_DATASOURCE 屬性,該屬性用於初始化訪問介面。通常,該字元串包含資料庫文件的名稱、資料庫伺服器的名稱,或者訪問介面能理解的用於定位資料庫的名稱。
' user_id '
字元串常量,它是傳遞給指定 OLE DB 訪問介面的用戶名。user_id 為連接指定安全上下文,並作為 DBPROP_AUTH_USERID 屬性傳入以初始化訪問介面。user_id 不能是 Microsoft Windows 登錄名稱。
' password '
字元串常量,它是傳遞給 OLE DB 訪問介面的用戶密碼。在初始化訪問介面時,password 作為 DBPROP_AUTH_PASSWORD 屬性傳入。password 不能是 Microsoft Windows 密碼。
' provider_string '
訪問介面特定的連接字元串,作為 DBPROP_INIT_PROVIDERSTRING 屬性傳入以初始化 OLE DB 訪問介面。通常 provider_string 封裝初始化訪問介面所需的所有連接信息。有關 SQL Native Client OLE DB 訪問介面可識別的關鍵字列表,請參閱Initialization and Authorization Properties。
catalog
指定對象所在的目錄或資料庫的名稱。
schema
架構的名稱或指定對象的對象所有者名稱。
object
對象名,它唯一地標識出將要操作的對象。
' query '
字元串常量,發送到訪問介面並由訪問介面執行。SQL Server 的本地實例不處理該查詢,但處理由訪問介面返回的查詢結果(傳遞查詢)。有些訪問介面並不通過表名而是通過命令語言提供其表格格式數據,將傳遞查詢用於這些訪問介面是非常有用的。只要查詢訪問介面支持 OLE DB Command 對象及其強制介面,那麼在遠程伺服器上就支持傳遞查詢。有關詳細信息,請參閱 SQL Native Client (OLE DB) Reference。
BULK
使用 OPENROWSET 的 BULK 行集訪問介面讀取文件中的數據。在 SQL Server 2005 中,OPENROWSET 無需將數據文件中的數據載入到目標表,便可讀取這些數據。這樣便可在單個 SELECT 語句中使用 OPENROWSET。
BULK 選項的參數可對何時開始和結束數據讀取、如何處理錯誤以及如何解釋數據提供有效控制。例如,可以指定以類型為 varbinary、varchar 或 nvarchar 的單行單列行集的形式讀取數據文件。默認行為詳見隨後的參數說明。
有關如何使用 BULK 選項的信息,請參閱本主題後面的「備注」部分。有關 BULK 選項所需許可權的信息,請參閱本主題後面的「許可權」部分。
注意:
當用於以完整恢復模式導入數據時,OPENROWSET (BULK ...) 不優化日誌記錄。
有關為大容量導入准備數據的信息,請參閱准備用於大容量導出或大容量導入的數據。
' data_file '
數據文件的完整路徑,該文件的數據將被復制到目標表中。
FORMATFILE = 'format_file_path'
指定格式化文件的完整路徑。SQL Server 2005 支持兩種格式化文件類型:XML 和非 XML。
格式化文件對定義結果集中的列類型是必需的。唯一的例外情況是指定 SINGLE_CLOB、SINGLE_BLOB 或 SINGLE_NCLOB 時;在這種情況下,不需要格式化文件。
有關格式化文件的信息,請參閱使用格式化文件大容量導入數據。
< bulk_options >
指定 BULK 選項的一個或多個參數。
CODEPAGE = { 'ACP '| 'OEM '| 'RAW '| 'code_page' }
指定該數據文件中數據的代碼頁。僅當數據含有字元值大於 127 或小於 32 的 char、varchar 或 text 列時,CODEPAGE 才是適用的。
CODEPAGE 值 說明
ACP
將數據類型為 char、varchar 或 text 的列由 ANSI/Microsoft Windows 代碼頁 (ISO 1252) 轉換為 SQL Server 代碼頁。
OEM(默認值)
將數據類型為 char、varchar 或 text 的列由系統 OEM 代碼頁轉換為 SQL Server 代碼頁。
RAW
不執行從一個代碼頁到另一個代碼頁的轉換。這是執行最快的選項。
code_page
指示編碼數據文件中的字元數據所在的源代碼頁;例如,850。該代碼頁對 SQL Server 2005 資料庫引擎正確解釋輸入數據是必需的。
ERRORFILE = 'file_name'
指定用於收集格式有誤且不能轉換為 OLE DB 行集的行的文件。這些行將按原樣從數據文件復制到此錯誤文件中。
錯誤文件在開始執行命令時創建。如果該文件已存在,將引發一個錯誤。此外,還創建了一個擴展名為 .ERROR.txt 的控制文件。此文件引用錯誤文件中的每一行並提供錯誤診斷。糾正錯誤後即可載入數據。
FIRSTROW = first_row
指定要載入的第一行的行號。默認值為 1,指示指定數據文件的第一行。通過對行終止符進行計數來確定行號。
LASTROW = last_row
指定要載入的最後一行的行號。默認值為 0,指示指定數據文件中的最後一行。
MAXERRORS = maximum_errors
指定格式化文件中定義的、在 OPENROWSET 引發異常之前可以發生的語法錯誤或格式有誤行的最大數目。在達到 MAXERRORS 之前,OPENROWSET 會忽略每個錯誤行,不載入它,並將其計為一個錯誤。
maximum_errors 的默認值為 10。
注意:
MAX_ERRORS 不適用於 CHECK 約束,也不適用於 money 和 bigint 數據類型的轉換。
ROWS_PER_BATCH = rows_per_batch
指定數據文件中近似的數據行數量。該值應與實際行數相同。
OPENROWSET 始終以單批形式導入數據文件。但如果將 rows_per_batch 的值指定為 > 0,則查詢處理器在查詢計劃中分配資源時將使用 rows_per_batch 的值作為提示。
默認情況下,ROWS_PER_BATCH 未知。指定 ROWS_PER_BATCH = 0 相當於忽略 ROWS_PER_BATCH。
SINGLE_BLOB
將 data_file 的內容作為類型為 varbinary(max) 的單行單列行集返回。
重要提示:
我們建議您僅使用 SINGLE_BLOB 選項(而不是 SINGLE_CLOB 和 SINGLE_NCLOB)導入 XML 數據,因為只有 SINGLE_BLOB 支持所有的 Windows 編碼轉換。
SINGLE_CLOB
通過以 ASCII 格式讀取 data_file,使用當前資料庫的排序規則將內容作為類型為 varchar(max) 的單行單列行集返回。
SINGLE_NCLOB
通過以 UNICODE 格式讀取 data_file,使用當前資料庫的排序規則將內容作為類型為 nvarchar(max) 的單行單列行集返回。
備注
只有在以下情況下才能使用 OPENROWSET 訪問 OLE DB 數據源中的遠程數據:指定訪問介面的 DisallowAdhocAccess 注冊表選項已顯式設置為 0,並啟用了 Ad Hoc Distributed Queries 高級配置選項。如果未設置這些選項,則默認行為不允許即席訪問。
訪問遠程 OLE DB 數據源時,伺服器不會自動委託可信連接的登錄標識,客戶端通過此登錄標識才能連接到正在查詢的伺服器。必須配置身份驗證委託。有關詳細信息,請參閱為委託配置鏈接伺服器。
如果 OLE DB 訪問介面在指定的數據源中支持多個目錄和架構,那麼就需要目錄及架構名稱。如果 OLE DB 訪問介面並不支持多個目錄和架構,那麼可以忽略 catalog 和 schema 的值。如果訪問介面只支持架構名稱,那麼必須指定一個格式為 schema.object 的兩部分名稱。如果訪問介面只支持目錄名稱,那麼必須指定一個格式為 catalog.schema.object 的三部分名稱。必須為使用 SQL Native Client OLE DB 訪問介面的傳遞查詢指定三部分名稱。有關詳細信息,請參閱 Transact-SQL 語法約定 (Transact-SQL)。
OPENROWSET 不接受參數變數。
使用帶有 BULK 選項的 OPENROWSET
以下 Transact-SQL 增強功能支持 OPENROWSET(BULK…) 函數:
與 SELECT 一起使用的 FROM 子句可以調用 OPENROWSET(BULK…) 而非表名,同時可以實現完整的 SELECT 功能。
帶有 BULK 選項的 OPENROWSET 在 FROM 子句中需要有一個相關名稱,也稱為范圍變數或別名。可以指定列別名。如果未指定列別名列表,則格式化文件必須具有列名。指定列別名會覆蓋格式化文件中的列名,例如:
FROM OPENROWSET(BULK...) AS table_alias
FROM OPENROWSET(BULK...) AS table_alias(column_alias,...n)
SELECT...FROM OPENROWSET(BULK...) 語句將直接查詢文件中的數據,無需將數據導入表中。SELECT...FROM OPENROWSET(BULK...) 語句還可以通過使用格式化文件指定列名和數據類型,從而列出大容量列別名。
INSERT...SELECT * FROM OPENROWSET(BULK...) 語句將數據文件中的數據大容量導入 SQL Server 表中。有關詳細信息,請參閱使用 BULK INSERT 或 OPENROWSET(BULK...) 導入大容量數據。
OPENROWSET BULK 選項與 INSERT 語句一起使用時,BULK 子句支持表提示。除了 TABLOCK 等常規表提示之外,BULK 子句還可以接受下列專用表提示:IGNORE_CONSTRAINTS(僅忽略 CHECK 和 FOREIGN KEY 約束)、IGNORE_TRIGGERS、KEEPDEFAULTS 和 KEEPIDENTITY。有關詳細信息,請參閱表提示 (Transact-SQL)。
有關如何使用 INSERT...SELECT * FROM OPENROWSET(BULK...) 語句的信息,請參閱導入和導出大容量數據。有關何時在事務日誌中記錄由大容量導入執行的行插入操作的信息,請參閱在大容量導入中按最小方式記錄日誌的前提條件。
注意:
使用 OPENROWSET 時,請務必了解 SQL Server 2005 是如何處理模擬的。有關安全注意事項的信息,請參閱使用 BULK INSERT 或 OPENROWSET(BULK...) 導入大容量數據。
大容量導出或導入 SQLXML 文檔
若要大容量導出或導入 SQLXML 數據,請在格式化文件中使用下列數據類型之一。
數據類型 效果
SQLCHAR 或 SQLVARYCHAR
在客戶端代碼頁或排序規則隱含的代碼頁中發送數據。
SQLNCHAR 或 SQLNVARCHAR
以 Unicode 格式發送數據。
SQLBINARY 或 SQLVARYBIN
不經任何轉換即發送數據。
許可權
OPENROWSET 許可權由傳遞給 OLE DB 訪問介面的用戶名的許可權確定。若要使用 BULK 選項,則需要有 ADMINISTER BULK OPERATIONS 許可權。
示例
A. 將 OPENROWSET 用於 SELECT 和 SQL Native Client OLE DB 訪問介面
以下示例使用 SQL Native Client OLE DB 訪問介面 (SQLNCLI) 訪問 HumanResources.Department 表,該表位於遠程伺服器 Seattle1 上的 AdventureWorks 資料庫中。使用 SELECT 語句定義返回的行集。訪問介面字元串包含 Server 和 Trusted_Connection 關鍵字。這些關鍵字由 SQL Native Client OLE DB 訪問介面識別。
復制代碼
SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
'SELECT GroupName, Name, DepartmentID
FROM AdventureWorks.HumanResources.Department
ORDER BY GroupName, Name') AS a;
B. 使用 Microsoft OLE DB Provider for Jet
以下示例通過 Microsoft OLE DB Provider for Jet 訪問 Microsoft Access Northwind 資料庫中的 Customers 表。
注意:
該示例假定已經安裝了 Access。若要運行該示例,則必須安裝 Northwind 資料庫。有關如何安裝 Northwind 資料庫的詳細信息,請參閱下載 Northwind 和 pubs 示例資料庫。
復制代碼
SELECT CustomerID, CompanyName
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';
'admin';'',Customers)
GO
C. 使用 OPENROWSET 和 INNER JOIN 中的另一個表
以下示例從 SQL Server Northwind 資料庫的本地實例中的 Customers 表以及存儲在同一計算機上的 Access Northwind 資料庫中的 Orders 表選擇所有數據。
注意:
該示例假定已經安裝了 Access。若要運行該示例,則必須安裝 Northwind 資料庫。有關如何安裝 Northwind 資料庫的詳細信息,請參閱下載 Northwind 和 pubs 示例資料庫。
復制代碼
USE Northwind
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';'admin';'', Orders)
AS o
ON c.CustomerID = o.CustomerID
GO
D. 使用 OPENROWSET 將文件數據大容量插入 varbinary(max) 列中
以下示例創建一個用於演示的小型表,並將名為 Text1.txt 的文件(位於 C: 根目錄)中的文件數據插入 varbinary(max) 列中。
復制代碼
USE AdventureWorks
GO
CREATE TABLE myTable(FileName nvarchar(60),
FileType nvarchar(60), Document varbinary(max))
GO
INSERT INTO myTable(FileName, FileType, Document)
SELECT 'Text1.txt' AS FileName,
'.txt' AS FileType,
* FROM OPENROWSET(BULK N'C:\Text1.txt', SINGLE_BLOB) AS Document
GO
E. 將 OPENROWSET BULK 訪問介面用於格式化文件以檢索文本文件中的行
以下示例使用格式化文件檢索用製表符分隔的文本文件 values.txt 中的行,該文件包含下列數據:
復制代碼
1 Data Item 1
2 Data Item 2
3 Data Item 3
格式化文件 values.fmt 說明 values.txt 中的列:
復制代碼
9.0
2
1 SQLCHAR 0 10 "\t" 1 ID SQL_Latin1_General_Cp437_BIN
2 SQLCHAR 0 40 "\r\n" 2 Description SQL_Latin1_General_Cp437_BIN
下面的語句是檢索此數據的查詢:
復制代碼
SELECT a.* FROM OPENROWSET( BULK 'c:\test\values.txt',
FORMATFILE = 'c:\test\values.fmt') AS a;
B. 一道關於SQL資料庫外連接的問題,實在不會做,拜託各位啦~~
selectstudent.學號,student.姓名,SC.學號,SC.課程號,SC.成績,course.課程號,course.課程名,course.學分
fromstudentstudent
leftjoinSConstudent.學號=SC.學號
leftjoincourseoncourse.課程號=student.課程號
where(查詢條件,比如哪個班,grade=XX……)
解釋:select後面到from之前的部分是你想顯示出來的欄位名稱,
from表a,leftjoin表bon表a和表b關聯的欄位,比如表a的學號和表b的學號是關聯的,後同
where查詢條件,比如你要查詢的是某個班級或者某段時間……
leftjoin這個是左連接,就是把左邊的表的左右選中欄位顯示出來,如果後面關聯的表的哪一行有數據就顯示出來關聯的數據,如果沒有,那麼現實null反正,第一個表的數據時一定會顯示出來的,而且是顯示在一個表裡面
顯示的結果看下面的圖片
C. sql連接資料庫語句
<%
Set
conn
=
Server.CreateObject("ADODB.Connection")
strsql="PROVIDER=SQLOLEDB;DATA
SOURCE=(local);UID=用戶名;PWD=密碼;DATABASE=資料庫名"
conn.Open
strsql
%>
D. 如何建立sqlserver 外部資料庫連接
Windows Vista 和 Windows Server 2008 以及更高版本
以下過程通過使用具有高級安全 Microsoft 管理控制台 (MMC) 管理單元的 Windows 防火牆來配置該 Windows 防火牆。從 Windows Vista 和 Windows Server 2003 開始提供此管理單元。高級安全 Windows 防火牆僅配置當前配置文件。有關高級安全 Windows 防火牆的詳細信息,請參閱配置 Windows 防火牆以允許 SQL Server 訪問。
打開 Windows 防火牆的埠以進行 TCP 訪問
在「開始」菜單上,單擊「運行」,鍵入 WF.msc,然後單擊「確定」。
在「高級安全 Windows 防火牆」的左窗格中,右鍵單擊「入站規則」,然後在操作窗格中單擊「新建規則」。
在「規則類型」對話框中,選擇「埠」,然後單擊「下一步」。
在「協議和埠」對話框中,選擇 TCP。選擇「特定本地埠」,然後鍵入資料庫引擎實例的埠號,例如默認實例的埠號 1433。單擊「下一步」。
在「操作」對話框中,選擇「允許連接」,然後單擊「下一步」。
在「配置文件」對話框中,選擇在您想要連接到資料庫引擎時描述計算機連接環境的任何配置文件,然後單擊「下一步」。
在「名稱」對話框中,輸入此規則的名稱和說明,再單擊「完成」。
在使用動態埠時打開對 SQL Server 的訪問
在「開始」菜單上,單擊「運行」,鍵入 WF.msc,然後單擊「確定」。
在「高級安全 Windows 防火牆」的左窗格中,右鍵單擊「入站規則」,然後在操作窗格中單擊「新建規則」。
在「規則類型」對話框中,選擇「程序」,然後單擊「下一步」。
在「程序」對話框中,選擇「此程序路徑」。單擊「瀏覽」,導航到要通過防火牆訪問的 SQL Server 實例,再單擊「打開」。默認情況下,SQL Server 位於 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe。單擊「下一步」。
在「操作」對話框中,選擇「允許連接」,然後單擊「下一步」。
在「配置文件」對話框中,選擇在您想要連接到資料庫引擎時描述計算機連接環境的任何配置文件,然後單擊「下一步」。
在「名稱」對話框中,輸入此規則的名稱和說明,再單擊「完成」。
網路查詢解決方案:
Step 1: 在伺服器圖標上單擊右鍵,選擇property,然後選connection,把allow remote connection選上,這一步的目的是讓資料庫允許遠程連接。
Step 2: 在資料庫伺服器圖標上,展開目錄,找到Security下的Logins子目錄樹,設置SA賬戶的屬性,改password,在status欄里,login選上enable。這一步的目的是,允許遠程客戶端使用sa用戶鄧肯,sa是system administrator的縮寫,擁有資料庫最高管理許可權,默認狀態下是禁用的。
Step3:在資料庫伺服器圖標上右鍵,打開Facets選項把RemoteDacEnabled的value改成true。這一步的目的是允許建立遠程專用管理員連接,此種連接擁有最高許可權,即使無法建立標准連接,也可以建立DAC連接。
Step4:開啟服務,打開SQL Server Configuration Tool,打開網路配置,選擇TCP/IP協議,點開屬性,IP地址填資料庫所在伺服器的IP地址,如果是本地伺服器,填127.0.0.1。
E. SQL代碼1、 建立資料庫鏈接 2、 建立記錄集鏈接 3、 查詢資料庫 4、 添加資料庫 5、 編輯資料庫 6、 刪除
也不知道你說的jdbc還是odbc 都差不多把 網上有很多的
1 jdbc建立資料庫連接 orcale的
private String driver = "oracle.jdbc.driver.OracleDriver";
private String user = "tianzhw";
private String password = "tianzhw";
private String url = "jdbc:oracle:thin:@localhost:1521:tianzhw";
public Connection GetCon() {
Connection con = null;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
statement 和 resultset 對象 分別是執行sql語句 和 返回的結果集使用的 你可以去網路中看看用法 就可以了
F. sql和資料庫連接 怎麼連接
首先說下,SQL是一種資料庫語言,只能是連接資料庫伺服器。
你的資料庫如果是MS-SQL的話啟動資料庫服務,打開SQL SERVER,填寫伺服器名稱:localhost ,選擇身份驗證,一般練習選擇windows驗證方式,不用輸入密碼,點擊確定,連接SQL Server ok。
如果你的資料庫是MySQL,首先啟動資料庫服務,然後打開MySQL窗口,會提示你輸入密碼。如果你安裝的時候沒有更改MySQL密碼,默認密碼是ROOT,如果你改了,填寫修改後的密碼,回車來連接MySqL。
----
給你個刪除的代碼參考下:
Adodc1.RecordSource = "select * from 表 where 列名='" & txtname.Text & "'"
Adodc1.Refresh
Adodc1.Recordset.Delete
Adodc1.Refresh
G. SQL資料庫連接
雖然是粘貼的,但我覺得說得還是非常詳細的。你看看吧。
SQL遠程連接
第一種方式:使用 OPENDATASOURCE 進行連接:
語法:
OPENDATASOURCE ( provider_name, init_string )
參數:
provider_name
注冊為用於訪問數據源的 OLE DB 訪問介面的 PROGID 的名稱。provider_name 的數據類型為 char,無默認值。
?
init_string
連接字元串,該字元串將要傳遞給目標提供程序的 IDataInitialize 介面。提供程序字元串語法是以關鍵字值對為基礎的,這些關鍵字值對由分號隔開,例如:"keyword1=value; keyword2=value"。
?
注意:
僅當 DisallowAdhocAccess 注冊表選項針對指定的提供程序顯式設置為 0,並且啟用 Ad Hoc Distributed Queries 高級配置選項時,OPENDATASOURCE 才可用於訪問 OLE DB 數據源中的遠程數據。如果未設置這些選項,則默認行為不允許即席訪問。
配製 Ad Hoc Distributed Queries 的方法:
SP_CONFIGURE 'show advanced options',1
GO
RECONFIGURE
GO
-- 為開啟為關閉
SP_CONFIGURE 'Ad Hoc Distributed Queries',1
GO
RECONFIGURE
GO
SP_CONFIGURE 'show advanced options',0
GO
RECONFIGURE
OPENDATASOURCE 函數可以在能夠使用鏈接伺服器名的相同 Transact-SQL 語法位置中使用。因此,可以將 OPENDATASOURCE 用作四部分名稱的第一部分,該部分名稱引用 SELECT、INSERT、UPDATE 或 DELETE 語句中的表或視圖的名稱;或者引用 EXECUTE 語句中的遠程存儲過程。當執行遠程存儲過程時,OPENDATASOURCE 應該引用 SQL Server 的另一個實例。OPENDATASOURCE 不接受參數變數。
?
與 OPENROWSET 函數類似,OPENDATASOURCE 應該只引用那些不經常訪問的 OLE DB 數據源。對於訪問次數較頻繁的任何數據源,請為它們定義鏈接伺服器。無論 OPENDATASOURCE 還是 OPENROWSET 都不能提供鏈接伺服器定義的全部功能,例如,安全管理以及查詢目錄信息的功能。每次調用 OPENDATASOURCE 時,都必須提供所有的連接信息(包括密碼)。
?
Windows 身份驗證比 SQL Server 身份驗證更加安全。應盡量使用 Windows 身份驗證。OPENDATASOURCE 不應該用於連接字元串中的顯式密碼。
?
任何用戶都可以執行 OPENDATASOURCE。用於連接到遠程伺服器的許可權由連接字元串確定。
?
例:
SELECT *
FROM OPENDATASOURCE
(
????'SQLOLEDB',
????'Data Source=192.168.1.43;User ID=sa;Password=sa'
).databasename.dbo.tablename
????如果是Windows身份認證登陸,則可以使用Integrated Security=SSPI安全驗證登陸。
第二種方法:使用 SP_ADDLINKEDSERVER 進行連接:
????語法:
sp_addlinkedserver
@server= ] 'server' [ , [ @srvproct= ] 'proct_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
參數:
[ @server = ] 'server'
要創建的鏈接伺服器的名稱。server 的數據類型為 sysname,沒有默認值。
[ @srvproct = ] 'proct_name'
要添加為鏈接伺服器的 OLE DB 數據源的產品名稱。proct_name 的數據類型為 nvarchar(128),默認值為 NULL。如果為 SQL Server,則不必指定 provider_name、data_source、location、provider_string 和 catalog。
[ @provider = ] 'provider_name'
與此數據源對應的 OLE DB 訪問介面的唯一編程標識符 (PROGID)。對於當前計算機中安裝的指定 OLE DB 訪問介面,provider_name 必須唯一。provider_name 的數據類型為 nvarchar(128),默認值為 NULL;但如果忽略 provider_name,則使用 SQLNCLI。SQLNCLI 是 SQL 本機 OLE DB 訪問介面。OLE DB 訪問介面應以指定的 PROGID 在注冊表中注冊。
?
[ @datasrc = ] 'data_source'
由 OLE DB 訪問介面解釋的數據源的名稱。data_source 的數據類型為 nvarchar(4000)。data_source 作為 DBPROP_INIT_DATASOURCE 屬性傳遞以初始化 OLE DB 訪問介面。
?
[ @location = ] 'location'
由 OLE DB 訪問介面解釋的資料庫的位置。location 的數據類型為 nvarchar(4000),默認值為 NULL。location 作為 DBPROP_INIT_LOCATION 屬性傳遞以初始化 OLE DB 訪問介面。
[ @provstr = ] 'provider_string'
OLE DB 訪問介面特定的連接字元串,它可標識唯一的數據源。provider_string 的數據類型為 nvarchar(4000),默認值為 NULL。provstr 或傳遞給 IDataInitialize 或設置為 DBPROP_INIT_PROVIDERSTRING 屬性以初始化 OLE DB 訪問介面。
在針對 SQL 本機客戶端 OLE DB 訪問介面創建鏈接伺服器後,可將 SERVER 關鍵字用作 SERVER=servername\instancename 來指定實例,以指定特定的 SQL Server 實例。servername 是運行 SQL Server 的計算機名稱,instancename 是用戶將連接到的特定 SQL Server 實例的名稱。
?
[ @catalog = ] 'catalog'
與 OLE DB 訪問介面建立連接時所使用的目錄。catalog 的數據類型為 sysname,默認值為 NULL。catalog 作為 DBPROP_INIT_CATALOG 屬性傳遞以初始化 OLE DB 訪問介面。在針對 SQL Server 實例定義鏈接伺服器時,目錄指向鏈接伺服器映射到的默認資料庫。
H. PL/SQL Developer如何連接外部資料庫
首先應該是先安裝oracle客戶端,後安裝pl/sql
developer。
修改D:\oracle\proct\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora引用SNDEV=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=11111))
(CONNECT_DATA=
I. sql怎樣連接資料庫
.代表你連接的資料庫所是在本機上的,也可以寫成127.0.0.1\\sqlexpress
如果你寫成別的代表你所連接的資料庫在別的電腦上,即遠程連接
例如:server=某一電腦的
ip(這個時候就只要寫server=ip,也可以寫成server=ip\\sqlexpress)
希望對你有所幫助
J. 請問易語言如何打開連接MSSQL資料庫,是MSSQL的資料庫。組件是:外部資料庫
簡單一點用到兩個組件:資料庫連接和記錄集,自帶的有代碼如下:
------------------------------------
資料庫連接1.連接
SQLServer
(「伺服器名」,
「資料庫名」,
「用戶名」,
「密碼」)
記錄集1.置連接
(資料庫連接1)
------------------------------------
這樣就連接上瞭然後用記錄集的相關命令就可以進行相關操作了!