2015-05-11 69 views
1

內的SP我有一個SP get_customer_info數據庫db_customers_ws是從一個Web服務調用,
我需要獲取男人的所有的電話號碼爲好,它是來自另一個數據庫的0..N,db_customers_data。 。TSQL:執行的功能,這就是所謂的select語句

[db_customers_ws] [DBO] [get_human_info]

CREATE PROCEDURE get_customer_info 
    ... 
    select col1 
    ,col2 
    ,getDataFromAnotherDatabase(@id) 

我想要得到的數據作爲一個連接字符串,所以我做一個函數調用
[db_customers_ws] [DBO。 ] [getDataFromAnotherDatabase]

CREATE FUNCTION [dbo].[getDataFromAnotherDatabase] 
    returns nvarchar(4000) 
    as... 

    @proc = [get_data_db_server] + '.[myproc]' -- [db_customers_data.[dbo].[get_phone_numbers_string] 
    exec @proc 
    @[email protected], 
    @arg2='meh' 

錯誤號:557錯誤消息:僅F可以在一個函數內執行unctions和一些擴展存儲過程。錯誤嚴重性:16錯誤狀態:2錯誤行:81錯誤PROC:get_customer_info

你能建議我解決錯誤的一些方法?
如果不可能,也許你已經知道如何通過其他方式實現此結果?

謝謝

回答

0

u能描述myproc的功能?

看來你需要在2個數據庫之間進行連接。 它不是,如果你做這樣的事情了一個問題:

CREATE PROCEDURE get_customer_info 
    ... 
    select A.col1 
    ,A.col2 
    ,B.Phone1 + B.Phone2 
    from db_customers_ws.dbo.get_human_info A 
    join db_customers_data.dbo.UNKNOWNTABLENAME B 
    on A.EmpoyeeID = B.EmpoyeeID 

希望工程......

+0

myproc的是有我需要的數據的輸出參數的存儲過程。 數據庫連接語句會很好,但如果數據庫可能不在同一臺服務器上,它可以實現嗎?我正在調用一個程序[get_data_db_server],它負責將我路由到corrent數據庫 – evictednoise

+0

是的,如果您使用鏈接服務器,它將工作。看這裏:http://www.codeproject.com/Articles/35943/How-to-Config-Linked-Servers-in-a-Minute – Tirma