PCB MS SQL跨庫執行SQL 獲取返回值
阿新 • • 發佈:2018-06-30
char AS span pre 必須 tno 執行 sql @param
一.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
PCB MS SQL跨庫執行SQL 獲取返回值