Zum Inhalt

Schlagwort: SQL Server

SSMS erzeugt für Tabellenskript keine Indizes

Lässt sich man sich im SQL Server Management Studio ein CREATE-Skript für eine vorhandene Tabelle erzeugen, so enthält dieses mit den Standardeinstellungen des SSMS keine Indizes. Damit diese auch mit ausgegeben werden, muss eine Einstellung angepasst werden.

Unter Tools -> Options -> SQL Server Object Explorer -> Scripting muss die Einstellung „Script indexes“ auf „true“ verändert werden.

Quelle: SQL Server does not script indexes by default | James Serra's Blog

Accidental DBA Series

An Accidental DBA (also sometimes called an Involuntary DBA) is someone whose primary role or job description is not strictly the administration of SQL Server, but is still expected by the company to maintain one or more of the company’s SQL Server instances properly. Many server, network, or application administrators, and even developers, find themselves in this role at some point in their career.

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

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