a庫儲存過程:
create
procedure
[dbo]
.[spaaafortest]
(@username nvarchar(20)
=null
,@loginpwd nvarchar(60)
=null)as
begin
select n'a'
as a
, n'b'
as b
, n'c'
as c
;end
同一臺伺服器例項,a,b兩個資料庫, 在b庫的儲存過程中,呼叫a庫的儲存過程
b庫:
alter
procedure
[dbo]
.[spaaafortest2]
(@username nvarchar(20)
=null
,@loginpwd nvarchar(60)
=null)as
begin
declare
@sql nvarchar(
500)
;set
@sql
= n' exec db_a.dbo.spaaafortest '
;exec sp_executesql @sql
end
a,b兩個資料庫,不在同一臺伺服器例項, 在b庫的儲存過程中,呼叫a庫的儲存過程
b庫:
alter
procedure
[dbo]
.[spaaafortest2]
(@username nvarchar(20)
=null
,@loginpwd nvarchar(60)
=null)as
begin
declare
@sql nvarchar(
500)
;set
@sql
= n' exec opendatasource('
'sqloledb'
',''data source=server-123\mssql2008r2;user id=sa;password=sa'
').db_a.dbo.spaaafortest '
;exec sp_executesql @sql
end
--------------- 在跨伺服器呼叫時,所使用opendatasource 遭遇如下資訊時
訊息 15281,級別 16,狀態 1,第 1 行
sql server blocked access to statement 'openrowset/opendatasource'
of component 'ad hoc distributed queries'
because this component is turned off
as part of the security configuration for this server.
a system administrator can enable the use
of'ad hoc distributed queries'
byusing sp_configure.
for more information about enabling 'ad hoc distributed queries'
,see "su***ce area configuration"
insql server books online.
通過如下方式進行設定:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'ad hoc distributed queries',1
reconfigure
SQL Server 跨資料庫查詢
語句 select from 資料庫a.dbo.表a a,資料庫b.dbo.表b b where a.field b.field dbo 可以省略 如 select from 資料庫a.表a a,資料庫b.表b b where a.field b.field sqlserver資料庫 這句是對映乙個...
sqlserver跨資料庫操作
1 方法一 建立鏈結伺服器 建立鏈結伺服器 exec sp addlinkedserver srv lnk sqloledb 遠端伺服器名或ip位址 exec sp addlinkedsrvlogin srv lnk false null,使用者名稱 密碼 go 查詢示例 select from s...
SQLServer 跨資料庫訪問
首先,你要知道跨資料庫訪問的語法,如下 select from openrowset sqloledb driver server 伺服器位址 uid sa pwd 密碼 資料庫名.dbo.表名 如果沒有啟用ad hoc distributed queries,查詢結果是出錯的,如下描述 exec ...