在sql server中执行过程时输入动态数据库名称

时间:2018-12-19 10:34:05

标签: sql sql-server sql-server-2012

我想从另一个过程中执行一个过程,因为我想动态输入数据库名称。

            SELECT @dname=dbname FROM @db WHERE id=@intFlag
            PRINT @dname
            EXEC [@dname].[dbo].[IPC_GetCount] @UserLogin,@Role,@Email,@Days,@Code,@Status

但是即使我在变量内获取数据库名称,它也不接受该变量。

请帮助

1 个答案:

答案 0 :(得分:1)

您可以尝试查询

SELECT @dname=dbname FROM   @db WHERE  id=@intFlag

PRINT @dname

DECLARE @query varchar(100) = 'EXEC ['+ @dname +'].[dbo].[IPC_GetCount] '+ @UserLogin +',' + @Role+',' + @Email +',' + @Days+',' +@Code +',' +@Status

EXECUTE (@query)