14. March 2011: Zählen für Anfänger
Unglücklicher Weise musste ich heute eine Datenbank migrieren – oder eigentlich eher kopieren. Denn so ein SQL Server Express bietet leider wenig Möglichkeiten die Daten strukturiert zu extrahieren. Nachdem ich also die Datenbank mit dem Microsoft SQL Server Management Studio auf einen richtigen SQL Server umziehen konnte, wurde ich mit einem merkwürdigen, nicht aussagekräftigen Status abgespeist:
Stopped ist weder Fisch noch Fleisch, daher wollte ich zumindest die Anzahl der Datensätze vergleichen. Wie sich herausstellte ist das gar nicht mal so einfach. Aber mit ein wenig Tricksereien (und SQL Injection) geht auch dies:
use myDataBase declare @TotalNumRows int, @CurNumRows int, @CurTableName varchar(50), @sql varchar(4000) declare TotalNumRows_Cursor Cursor for select table_name from information_schema.tables where table_type='BASE TABLE' set @TotalNumRows = 0 open TotalNumRows_Cursor fetch next from TotalNumRows_Cursor while @@FETCH_STATUS = 0 begin fetch next from TotalNumRows_Cursor into @CurTableName select @sql = 'select * from [' + @CurTableName +']' exec(@sql) select @TotalNumRows = @TotalNumRows + @@RowCount End close TotalNumRows_Cursor Print @TotalNumRows deallocate TotalNumRows_Cursor go
Achja, bei besagtem SQL Server Express kann man sich übrigens mit dem kleinen Programm qsql.exe
an der Datenbank via SQL Prompt anmelden. Auch das muss man erst einmal wissen.
Kommentieren
your_ip_is_blacklisted_by sbl.spamhaus.org