PCB MS SQL跨库执行SQL 获取返回值
一.SQL跨库执行SQL 获取返回值
DECLARE @Dblink nvarchar(100) DECLARE @sql nvarchar(MAX) DECLARE @layer INT SET @Dblink = 'P2.fp_db.dbo.' select @sql='SELECT top 1 @layer=layer FROM ' + @Dblink + 'mktxhglb WHERE pdctno= ''at00101ca0''' exec sp_executesql @sql, N'@layer int output ',@layer output SELECT @layer
使用:sp_executesql 规则范要求:
1、要求动态Sql和动态Sql参数列表必须是NVARCHAR
2、动态Sql的参数列表与外部提供值的参数列表顺序必需一致
3、一旦使用了 '@name = value' 形式之后,所有后续的参数就必须以 '@name = value' 的形式传递,比如:
DECLARE @Dblink nvarchar(100) DECLARE @sql nvarchar(MAX) DECLARE @layer INT SET @Dblink = 'P2.fp_db.dbo.' select @sql='SELECT top 1 @layerNum =layer FROM ' + @Dblink + 'mktxhglb WHERE pdctno= ''at00101ca0''' exec sp_executesql @stmt=@sql,@params= N'@layerNum int output ',@layerNum = @layer output SELECT @layer
作者:pcbren 微信号:yadnfku QQ号: 254566449
博客地址:https://www.cnblogs.com/pcbren/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
如果大家感觉我的博文对大家有帮助,请推荐支持一把。