首页 > 解决方案 > 是否可以将数据库声明为变量?

问题描述

我正在进行数据迁移,并且希望能够更改我的 SourceDatabase 而无需在多个地方编辑代码,这可能吗?这是我从其他一些帖子中尝试过的,但我一定做错了什么

Declare @SourceDatabase  VARCHAR(255)
Set @SourceDatabase = '[PrimaryTesting]';

Select  LAid+Dfeid as DFE,SchoolName from @SourceDatabase.dbo.School;

标签: sqldatabasevariables

解决方案


我假设您使用的是 MSSQL,在这种情况下,您必须构建所需的 SQL 字符串,然后使用该exec语句运行它:

declare @SourceDatabase VARCHAR(255) = '[PrimaryTesting]';

exec('select LAid+Dfeid as DFE,SchoolName from ' + @SourceDatabase + '.dbo.School;');

但是,在使用这种方法时,请注意SQL 注入的可能危险。


推荐阅读