我有两个数据库,一个MySQL 5,一个Server 2000。我已经将MySQL数据库映射为MySQL数据库中的链接服务器。我想从MySQL数据库调用保存在MySQL数据库中的存储过程。正确的语法是什么?在Server 2000中是否可能出现这种情况?
编辑:
我试过了
EXEC webpush...clear_tables但我只是拿回这个:
Could not execute procedure 'clear_tables' on remote server 'webpush'.
[OLE/DB provider returned message: [MySQL][ODBC 3.51 Driver]
[mysqld-5.0.46-enterprise-gpl-log]You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near '?=call "clear_tables";1' at line 1]即使我填写DB名称和所有者,我仍然得到同样的东西。
发布于 2009-12-22 00:56:05
我想做一些类似的事情,所以即使这已经过时了,我还是想给其他搜索者发个回复。我无法找到通过“.”运行存储过程的方法。表示法,但这很好
下面是MySQL中存储的proc,用于更新给定id的数据库xxx测试表中记录的条形码字段:
定界器$$
如果存在xxx.STP_products_Update_barcode$$创建DEFINER=root@localhost过程xxx.STP_products_Update_barcode(IN INT,in xbarcode varchar(25))开始更新测试集条形码= xbarcode
其中id = xid;END $$
划界者;
这是Server中运行它的一个过程(我通常会尝试捕获块和其他错误捕获,但是对于clarity.Note来说,MYSQL_XXX是一个从server到MySQL设置的链接服务器)。
创建过程dbo.
[STP_XXX_MySQLBarcode_Update]
@product_id int,@条形码varchar(20)作为开始设置NOCOUNT对声明@SQL (1000)
SET @SQL = 'CALL STP_products_Update_barcode(' + CAST(@Product_id as varchar) + ','''+ @barcode +''')' EXEC (@SQL) AT MYSQL_XXX SET NOCOUNT OFF END GO
这里还没有格式化代码的窍门,现在有点仓促,但是你知道.
发布于 2009-08-19 21:47:01
我还没有以这种方式使用链接服务器,但您不能使用链接server.database.owner.procedure语法使用exec调用吗?
https://stackoverflow.com/questions/1302695
复制相似问题