2011-04-15 50 views

回答

0

對於老ASE,您可以使用此解決方法:

還有就是存儲過程sp_remotesql。 你可以用它來運行本地服務器上查詢過,你只需要本地服務器到服務器:

sp_addserver local, NULL, <servername>

哪裏<servername>是本地服務器的名稱(從sql.ini)中。

您可以添加快捷方式程序運行SQL:

create procedure sp_exec_dynsql @p_cmd varchar(255) 
as 
begin 
    exec sp_remotesql "local", @p_cmd 
end 

可惜的是,你被限制爲255個字符在SQL。

1

@jasir:限制爲255個字符的結果來自您的過程定義。不可能通過定義例如VARCHAR(1024)?

ASE Refrence手冊15.7(http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc36272.1572/html/commands/X30305.htm),用於命令 狀態執行:

字符串是Transact-SQL命令 執行的字面包含字符串的一部分。有沒有限制到字符串提供的字符數 。

但是,有時sybase之上的系統(例如Kondor +,金融市場的產品使用ASE 15.x作爲數據庫)可能會設置限制。在這種KONDOR +它是不可能的,如果變量@SQLQuery超過256個字符使用

exec(@SQLQuery) 
在其所謂的OpenReport(存儲過程)

,。