DECLARE@databasenameAS NVARCHAR(128);
SET@databasename=(SELECT MIN(name)FROMsys.databases
WHEREnameNOT IN ('master','model', 'msdb','tempdb'));
WHILE@databasenameIS NOTNULLBEGIN
PRINT@databasename;
SET@databasename =(SELECTMIN(name)FROMsys.databases
WHEREnameNOT IN ('master','model', 'msdb','tempdb')
ANDname> @databasename);END
Databases
A
B
C
D
I have question related to the above SQL statement, forgive me as I am unfamiliar with WHILE loops.
I understand that the query above finds the minimum database name, prints the value then finds the next database greater than the minimum.
What happens when it loops occurs, I know it prints the database name of the one it has found. In the example above it will be B. Will the @databasename be then set to B and the following query will be run so the @databasename will then be set to C?
SELECTMIN(name)FROMsys.databases
WHEREnameNOT IN ('master','model', 'msdb','tempdb')
ANDname> @databasename);