Artikel mit dem Schlagwort ‘SQL Server’

this and that SQL Server

Letztes Restore-Datum einer Datenbank ermitteln

select destination_database_name,max(restore_date) as letztes_Wiederherstellungsdatum from msdb..restorehistory
where destination_database_name='Datenbankname'
group by destination_database_name

Letztes Backup-Datum einer Datenbank ermitteln

select database_name,max(backup_finish_date) as letztes_Backupdatum from msdb..backupset
where database_name='Datenbankname'
group by database_name

Datenbankobjekt finden

Select * From sysobjects Where UPPER(name) like UPPER('%Objektname%')

Wiederherstellungsmodell bei allen Datenbanken ändern

Will man alle Datenbanken, bspw. auf einem Testserver, in den Wiederherstellungsmodell »Einfach« versetzen, so kann man das ganz einfach per TSQL Statement vornehmen

use master  
SELECT 'ALTER DATABASE [' + name + '] SET RECOVERY SIMPLE' from master..sysdatabases where name not in ('master','model','msdb','tempdb')

Der obige SELECT erzeugt die Statements, die man dann ausführen muss, um das Wiederherstellungsmodell zu verändern.

Alternativ kann man so die Datenbank auch in die anderen beiden Wiederherstellungsmodi versetzen. Hierfür muss »SIMPLE« im obigen Statement nur durch »FULL« oder »BULK_LOGGED« ersetzt werden. Will man diesen Vorgang automatisieren, so kann man hierfür bspw. eine Stored Procedure erstellen, die Nachts automatisch als Auftrag vom SQL Server ausgeführt wird. So könnte hier ein simples Beispiel aussehen:

CREATE PROCEDURE SetRecoveryMode
AS
BEGIN
 
	SET NOCOUNT ON
 
	DECLARE @ToDo TABLE 
	( 
		ID int IDENTITY PRIMARY KEY,
		Statement nvarchar(max),
		Completed bit
	)
 
	INSERT INTO @ToDo (Statement, Completed)
	SELECT 'ALTER DATABASE [' + name + '] SET RECOVERY SIMPLE', 0
	from master..sysdatabases where name not in ('master','model','msdb','tempdb') 	
 
	DECLARE @CurrentID int
	DECLARE @CurrentStatement nvarchar(max)
 
	WHILE EXISTS (SELECT * FROM @ToDo WHERE Completed = 0)
	BEGIN
		SELECT TOP 1 @CurrentID = ID,
					 @CurrentStatement = Statement
		FROM @ToDo
		WHERE Completed = 0
		ORDER BY ID ASC
 
		EXEC (@CurrentStatement)
 
		UPDATE @ToDo
		SET Completed = 1
		WHERE ID = @CurrentID
	END
 
	SET NOCOUNT ON
END

defekte Beispieldatenbank zum experimentieren

Ist man auf der Suche nach einer Datenbank, die schon Fehler enthält, so muss man diese nicht mühselig, durch bspw. ausstellen des Servers erstellen, so kann unter dem folgenden Link fündig werden. Ganz praktisch wenn man bestimmte entwickeln möchte, für die man eine defekte Datenbank benötigt, weil man sonst gar keine Ergebnisse erhält.

Sample corrupt databases to play with

MSSQL Datenbank in “normale” Datei exportieren

Wenn man eine SQL Server Datenbank in eine “normale” Datei exportieren will, dann kann man das leider nicht mit Bordmitteln machen, die einem bspw. das Management Studio zur Verfügung stellt. Microsoft bietet hierfür aber ein kostenloses Tool an, dass genau diese Aufgabe übernehmen kann.

___

Quelle: MSSQL Export in eine normale Datei mit create und insert statements