SQL Server ist in vielen Momenten so “streng” logisch. Wenn man bspw. Daten aus einem Select in eine Tabelle einfügen möchte geht dies mit folgender Anweisung:
Insert into TabA Select sp1, sp2, sp3 from TabB where sp4 = 'xy' go
Der INSERT INTO erwartet dabei nicht etwa zwingend den SELECT, sondern etwas “tabellenartiges”.
Das kann auch eine stored procedure oder auch ein DBCC leisten. Gerade beim DBCC ist es besonders praktisch, Ergebnisse in bestimmen Abständen in Protokolltabellen zu schreiben.
Also streng logisch müsste der INSERT INTO eben auch mit einer Stored Procedures oder per DBCC statt des SELECT funktionieren
insert into tab1 (sp1, sp2, sp3) values exec sp_irgendwas @nr=5
Ergebnisse des DBCC einlesen:
Beispiel die Auslastung der Datenbankdateien bzw. des Transaktionsprotokolls:
create table #usage ([Database name] varchar(50), [Log Size] float, [log space used (%)] float, status int) insert into #usage exec ('DBCC SQLPERF ( LOGSPACE )')