Stel je het volgende scenario voor: iemand vraagt je om alle tabellen die beginnen met “MEDICAT_” in de database HIX_ONTWIKKEL te kopiëren naar de database DBATOOLS. Hoe zou je dat aanpakken?
Wel, er zijn verschillende manieren maar dit is een van de makkelijkste:
1 2 3 4 5 6 7 8 9 10 11 |
DECLARE @sql NVARCHAR(MAX) = N''; SELECT @sql += N'SELECT * INTO [DBAtools].dbo.' + QUOTENAME(name) + N' FROM [HIX_ONTWIKKEL].dbo.' + QUOTENAME(name) + N';' FROM sys.tables WHERE name LIKE N'MEDICAT_%' ORDER BY name; PRINT @sql; -- Let op: PRINT toont alleen de eerste 4000 (NVARCHAR) or 8000 (VARCHAR) karakters ! -- EXEC sp_executesql @sql; |
Om de uit te voeren query te bekijken, kun je het PRINT commando uitvoeren.
Wil je de tabellen daadwerkelijk kopiëren, moet je eerst de laatste regel uit commentariëren.