我有一个动态查询,我需要从不同的数据库发送给数据库的名称作为逗号分隔值和retreive数据选择数据ü可以帮助我out..i有以下查询从多个数据库
Decalre @DBname nvarchar(max);
Declare @Selectstring nvarchar(max);
set @Selectstring='
select
Userid,
UserName,
CreatedOn,
IsActive as Status,
LastLoggedin
from
'[email protected]+'.dbo.UserDetails'
execute sp_executesql @[email protected]
我正在执行此使用动态query..i要发送的
set @dbname='dbname1,dbname2,dbname3'
每个数据库都有此表@DbName价值,我想从不同databases..Please所有这些表中获取数据帮助我如何做到这一点
试着让它只与一个数据库一起工作,然后你可以扩展该解决方案来使用分割字符串函数或类似方法在逗号分隔的字符串中循环数据库名称。 –
当像这样使用动态SQL时,您应该始终注意不要将自己暴露给SQL注入,就像执行此类方法时常见的那样。网上有几个关于如何保护自己的例子,这超出了这个问题的范围,但我觉得应该指出。一个简单的例子是假设:'SET @ DBname ='dbname1; UPDATE dbname1.dbo.UserDetails SET IsActive = 1; SELECT * FROM dbname1''这仍然适用于您的示例,但会导致更改基础数据 – Seph