Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

използвайте променлива в израза FROM

Трябва да използвате динамичен sql:

declare @numrows int = (select count(*) from sys.servers)
declare @i int = 1
declare @Sql(1000)
declare @servername varchar(max)

while @i <= @numrows
BEGIN
select @servername = servernaam 
from #servers where rij = @i

set @Sql = 'select * from '[email protected]+'.DATABASE.DBO.TABLE'
exec(@Sql)

set @i = @i+1

END

Тук е повече информация за exec.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разделен със запетаи списък от редове на колона с група по други колони

  2. Предаване на DataTable към съхранена процедура като аргумент

  3. SQL Server не освобождава памет след изпълнение на заявката

  4. Ескалация на заключване на SQL сървър

  5. Кодови страници и съпоставяне на SQL Server