1. 程式人生 > >PCB MS SQL跨庫執行SQL 獲取返回值

PCB MS SQL跨庫執行SQL 獲取返回值

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 獲取返回值