我无法在链接服务器中调用UDF。
下面是我的代码:
DECLARE @Phone_Digits_Input varchar(12);
DECLARE @Phone_Min_Max_Input varchar(5);
DECLARE @Phone_Digits_String varchar(10);
DECLARE @Phone_Min_Max_String varchar(5);
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @phone_digits varchar(10);
SET @Phone_Digits_String = 'phone_digits';
SET @Phone_Min_Max_String = '10-10';
SET @SQLString = N'SELECT @phone_digitsOUT = RemoteServer.master.dbo.myUDF(@Phone_Digits_Input, @Phone_Min_Max_Input)';
SET @ParmDefinition = N'@Phone_Digits_Input varchar(10), @Phone_Min_Max_Input varchar(5), @phone_digitsOUT varchar(10) OUTPUT';
EXECUTE RemoteServer.master.dbo.sp_executesql @SQLString, @ParmDefinition, @Phone_Digits_Input = @Phone_Digits_String,
@Phone_Min_Max_Input = @Phone_Min_Max_String,
@phone_digitsOUT=@phone_digits OUTPUT;
SELECT @phone_digits;
当我运行它时,我收到一条信息:
Msg 344,第16级,状态1,第1行 不允许远程函数引用“RemoteServer.master.dbo.myUDF”,并且无法找到列名“RemoteServer”,或者列名“RemoteServer”不明确。
我怎样才能解决这个问题?
发布于 2015-09-03 20:23:29
我查到服务器名了!UDF是一个不同的数据库!抱歉我搞错了。最后代码如下:
DECLARE @Phone_Digits_Input varchar(12);
DECLARE @Phone_Min_Max_Input varchar(5);
DECLARE @Phone_Digits_String varchar(10);
DECLARE @Phone_Min_Max_String varchar(5);
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @phone_digits varchar(10);
SET @Phone_Digits_String = 'phone_digits';
SET @Phone_Min_Max_String = '10-10';
SET @SQLString = N'SELECT @phone_digitsOUT = dbo.MyUDF(@Phone_Digits_Input, @Phone_Min_Max_Input)';
SET @ParmDefinition = N'@Phone_Digits_Input varchar(10), @Phone_Min_Max_Input varchar(5), @phone_digitsOUT varchar(10) OUTPUT';
EXECUTE MyServer.MyDB.dbo.sp_executesql @SQLString, @ParmDefinition, @Phone_Digits_Input = @Phone_Digits_String,
@Phone_Min_Max_Input = @Phone_Min_Max_String,
@phone_digitsOUT=@phone_digits OUTPUT;
SELECT @phone_digits;
谢谢。
https://stackoverflow.com/questions/32361365
复制相似问题