Microsoft SQL Server Instanz umbenennen nach Änderung des Hostname

Wird ein Host umbenannt auf dem ein SQL Server installiert ist so gibt es möglicherweise Probleme weil in sys.servers noch der Instanzname mit dem alten Hostname registriert ist. Zunächst sollte man mittels

SELECT @@ServerName

prüfen welcher Name in sys.servers registriert ist.
Steht dort noch der alte Hostname drin kann mit den folgenden Stored Procedure Calls der lokale Server gelöscht und neu registriert werden.

exec sp_dropserver '<Alter\Instanzname>'
exec sp_addserver '<Neuer\Instanzname>', local

<Alter\Instanzname> und <Neuer\Instanzname> sind natürlich entsprechend auf den jeweils alten und neuen Hostname zu editieren.

Anschließend sollte unbedingt der SQL Server Dienst neu gestartet werden.

Postfachgröße und Storage Limit Status in Microsoft Exchange 2010 anzeigen

Folgender Befehl in der Verwaltungskonsole zeigt die Postfächer mit Größe und Storage Limit Status an. Der Befehl ist nützlich um Postfachgrößen zu prüfen und zu sehen welche Benutzer in die Storage Quota laufen.

Get-MailboxStatistics -server <Hostname> | FT DisplayName, TotalItemSize, StorageLimitStatus

<Hostname> ist durch den Hostname eines Exchange Servers zu ersetzen.

Ausgeführtes T-SQL Statement eines SQL-Server Prozesses

Um das aktuell ausgeführtes T-SQL Statement eines SQL-Server Prozesses anhand des sql_handle aus beispielsweise sys.dm_exec_requests per T-SQL (Beispielsweise in sqlcmd) anzuzeigen reicht folgendes T-SQL Statement:

SELECT * FROM sys.dm_exec_sql_text(<SQL_HANDLE>)
go

Der benötigte SQL_HANDLE Parameter kann aus sys.dm_exec_requests abgerufen werden wie hier erklärt. Dazu muss in der Abfrage dort eben das Feld sql_handle hinzugefügt werden.

Ein Aufruf könnte dann so aussehen:

SELECT * FROM sys.dm_exec_sql_text(0x02000000CCB0F308167B0C79C490334383A6EF32B5ADA66F)
go

In der Abgerufenen Tabelle steht das ausgeführte SQL-Statement des Prozesses dann in der Spalte ‚text‘.

SQL Server Prozesse per T-SQL abfragen

Beispielsweise per sqlcmd, oder auch im Management Studio lassen sich laufende Prozesse mit folgender Abfrage anzeigen:

select session_id, status, command from sys.dm_exec_requests
go

Mehr zu sys.dm_exec_requests und deren Spalten hier: http://msdn.microsoft.com/de-de/library/ms177648(v=sql.90).aspx

SQL Server Command Line Client

Hat man gerade kein Microsoft SQL Server Manegement Studio zur Hand kann man auch auf der Command Line mit dem SQL-Server sprechen.

Dazu kann man das command line utility sqlcmd hernehmen. Um sich an einer SQL Server Instanz per ’sa‘ anzumelden genügt folgendes:

sqlcmd -U sa -S SERVER\INSTANCE

Mittels sqlcmd lassen sich beliebige T-SQL Statements ausführen.

OLEDB Provider Properties verändern in Microsoft SQL Server Express

SQL Server Express Edition bietet nicht die Möglichkeit OLEDB Provider Properties per SQL Server Management Studio einzustellen. Das entsprechende Userinterface in SQL Server Management Studio ist schlicht nicht vorhanden.

Dennoch lassen sich OLEDB Provider Einstellungen über die Stored Procedure sp_MSset_oledb_prop einstellen. Hier im Beispiel wird ‚Allow In Process‘ für den Oracle OLEDB Provider ORAOLEDB.Oracle auf ‚True‘ gesetzt.

EXEC master.dbo.sp_MSset_oledb_prop N'ORAOLEDB.Oracle', N'AllowInProcess', 1

Das T-SQL Statement kann entweder im SQL Server Management Studio von SQL Server Express Edition with Advanced Services oder auf der Kommandozeile mittels osql ausgeführt werden.