Posts Tagged ‘MSSQL’
SQL Server “A network-related or instance-specific error occurred”

Nach der Installation eines SQL Servers (in meinem Fall 2008 R2 auf einem Windows 2008 R2 x64 Server) erhält man beim Versuch einen Remoteverbindung über das SQL Server Management Studio herzustellen in der Regel folgende Fehlermeldung:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 5)

Der Grund dafür ist recht simpel. Die Windows Firewall blockt den Port für den SQL Server (1433). Leider sieht die Installation noch immer nicht vor den Port im Laufe der Installation öffnen zu lassen. Man kann sich nun entweder durch die Windows Firewall GUI klicken oder einfach folgenden Befehl in einer CMD Box (muss als Admin ausgeführt werden!) eingeben:

netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope = SUBNET profile = CURRENT

image

Thats it. Der nächste Verbindungsversuch führt zum Erfolg :-) .

MS SQL 2008 (R2) Export in eine normale Datei mit Create und insert statements

Nachdem der Microsoft SQL Database Publishing Wizard für SQL Server 2008 (R2) Systeme nicht mehr verfügbar ist um die Datenbank und deren Inhalt in eine Datei mit SQL Statements zu transferieren (siehe alter Beitrag), war ich heute auf der Suche nach einem neuen Weg. Fündig wurde ich dabei direkt im Microsoft SQL Server Management Studio (ein sehr guter Platz dafür :-) . Die notwendigen Schritte sind dabei recht einfach:

1. Rechtsklick auf die zu exportierende Datenbank –> Tasks –> Generate Scripts…

image

2. Auswahl der zu exportierenden Elemente (in meiner DB gibt es derzeit nur Tables und Stored Procedures – daher stehen bei mir auch nur diese beiden Elemente zu Auswahl).

image

3. Setzen der Ouput Options. Da ich wenige Daten habe, lasse ich die Ausgabe direkt in ein query window schreiben.

Wichtig noch nicht Next klicken.

image

4. Auswahl von Advanced und hier bei “Types of data to script” die Option Schema and data auswählen. (Das ist nicht default!!). In dieser Ansicht kann man auch noch weitere Dinge setzen die ganz nützlich sind. Ich setzte z. B. gerne noch die Optionen Script DROP and CREATE und Script USE DATABASE.

image

Thats it. Noch zwei mal Next klicken und schön öffnet sich ein neues Fensterchen mit den SQL Commands.

MSSQL String in RTF wandeln

… und noch eine SQL Funktion aus meiner Sammlung. Diese Funktion ermöglicht das Umwandeln eines normalen Strings in ein RTF “Objekt” direkt auf der Datenbank.

-- Diese SQL Query erstellt eine neue Funktion mit dem Namen string2rtf. Die Funktion hat zur Aufgabe einen übergebenen String
-- in ein RTF Objekt umzuwandeln.
-- @param String enthält den Rohstring
-- @return rtfstring enthält den string plus die rtf Erweiterungen
if exists (select * from information_schema.routines where routine_name = N'string2rtf' and routine_type = 'function') drop function [dbo].[string2rtf]
GO
CREATE FUNCTION dbo.string2rtf(@string varchar(8000))
returns varchar(8000)
AS
BEGIN
DECLARE @praefix varchar(200)
DECLARE @suffix varchar(200)
DECLARE @rtfstring varchar(8000)
SET @praefix = '{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}\viewkind4\uc1\pard\f0\fs17 '
SET @suffix = '\par}'
SET @rtfstring = NULL
SET @rtfstring = @praefix + @string + @suffix;
SET @rtfstring = REPLACE(@rtfstring,CHAR(9),'\tab ');
SET @rtfstring = REPLACE(@rtfstring,CHAR(13) + CHAR(10),'\par ');
SET @rtfstring = REPLACE(@rtfstring,CHAR(13),'\par ');
SET @rtfstring = REPLACE(@rtfstring,CHAR(10),'\par ');
SET @rtfstring = REPLACE(@rtfstring,'ä','\''e4');
SET @rtfstring = REPLACE(@rtfstring,'Ä','\''c4');
SET @rtfstring = REPLACE(@rtfstring,'ü','\''fc');
SET @rtfstring = REPLACE(@rtfstring,'Ü','\''dc');
SET @rtfstring = REPLACE(@rtfstring,'ö','\''f6');
SET @rtfstring = REPLACE(@rtfstring,'Ö','\''d6');
SET @rtfstring = REPLACE(@rtfstring,'ß','ss');
SET @rtfstring = REPLACE(@rtfstring,'€','\''80');
return @rtfstring
end
MSSQL Export in eine normale Datei mit create und insert statements

… was für ein Tag. Mein Plan war es heute mal schnell eine bestehende Datenbank in eine andere Datenbank zu kopieren. Von den Datenbanksystemen mit denen ich bis jetzt gearbeitet habe (MySQL und Oracle) her war ich es gewohnt, dies mit wenigen Schritten erledigen zu können.

Nicht so bei MSSQL – weder die Management Konsole für jeden (SSMSE) noch der große Bruder (SSMS) bieten eine vernüftige Funktion um die Daten einfach in ein lesbares Format zu exportieren.

Nach etwas suchen bin ich dann auf ein weiters Tool von Microsoft aufmerksam gemacht worden. Der Microsoft SQL Server Database Publishing Wizard bietet genau die von mir gewünschte Funktionalität und ist kinderleicht zu bedienen.