小编Jpr*_*ada的帖子

将数据库名称连接到 SQL 多部分标识符中

我正在编写一个存储过程,并且尝试在多部分标识符中连接数据库名称,但FROM没有成功。这是我尝试过的一种方法,但没有成功

INSERT INTO CONTROL_LOGISTICA.dbo.ITEMS_TRAMITE (NRODCTO, TIPODCTO, PRODUCTO, EMPRESA, CODUSUARIO, CODUBICA, CANTIDAD, CCHECK_HIJO) 
    SELECT 
        @pNrodcto, @pTipodcto, 
        M.PRODUCTO, @pEmpresa, @pUsuario,
        M.CODUBICA, M.CANTIDAD, 0
    FROM 
        "@mEmpresa".dbo.MVTRADE M WITH(NOLOCK) -- Here I'm stuck
    INNER JOIN 
        Dbo.vReporteMercia_ESP P ON P.PRODUCTO = M.PRODUCTO
    WHERE 
        M.CANTIDAD <> 0 AND M.Origen = 'FAC' 
        AND M.NRODCTO = @pNrodcto AND M.TIPODCTO = @pTipodcto
Run Code Online (Sandbox Code Playgroud)

我直接从存储过程获取变量

@pEmpresa AS char(20)
Run Code Online (Sandbox Code Playgroud)

我知道我可以做一个IF喜欢

IF (@pEmpresa = 'John Doe')
 BEGIN
 --..... and the query here
 END
Run Code Online (Sandbox Code Playgroud)

是否可以使用变量连接数据库名称?如何?或者我应该只使用IF

sql-server sql-server-2012

2
推荐指数
1
解决办法
1724
查看次数

标签 统计

sql-server ×1

sql-server-2012 ×1