Laden...

MSSQLServer Instanzen ???

Erstellt von Steffen2012 vor 12 Jahren Letzter Beitrag vor 12 Jahren 965 Views
S
Steffen2012 Themenstarter:in
70 Beiträge seit 2012
vor 12 Jahren
MSSQLServer Instanzen ???

Hallo

ich hätte mal eine Frage zu MSSQL Server. Ich schreibe gerade an einem Programm das auf MSSQL Server zugreifen soll. Ich habe zu Hause einen MSSQL 2008 Express am laufen. In der Firma läuft ein normaler MSSQL 2008. Beide Server sind voll gepatcht mit allen Service Packs. Wenn ich bei beiden Servern die Standartinstallation durchgehe fällt mir zum Schluss eines auf. Die Express Version benutzt den Instanznamen COMPUTER\SQLEXPRESS und der normale nur COMPUTER. Wie müsste der SQLServer denn installiert werden das immer COMPUTER\INSTANZNAME im Managementstudio anzugeben wäre. Ich frage deshalb weil mein Programm nur so mit SQLServer klarkommt. Danke im Vorraus.

Grüße

1.552 Beiträge seit 2010
vor 12 Jahren

Hallo Steffen2012,

ich hatte noch nie welche Probleme, egal wie die Instanzen genannt sind.
Wenn nur eine Instanz läuft kann der Instanzname im SSMS weggelassen werden.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

S
Steffen2012 Themenstarter:in
70 Beiträge seit 2012
vor 12 Jahren

Mein Problem besteht darin das mein Programm eine Verbindung zum SQLServer über SQLConnection aufbaut. Der ConnectionString besagt ja im Normalfall "Data Source=COMPUTER\INSTANZ;UserID...usw". Der String wird auf eine Combobox gebunden. Und mit der arbeite ich dann weiter (Datenbanken erstellen..etc). Ich häng mal ein Screenshot an vom Managementstudio. Wenn ich nur den Computernamen stehen lasse klappt es.

S
Steffen2012 Themenstarter:in
70 Beiträge seit 2012
vor 12 Jahren

Wenn ich unten aufgeführeten Code mal zeigen darf:


private void frmDatenbankVW_Load(object sender, EventArgs e)
        {
            #region MSSQLServer - ComboBox mit Datenquellen füllen
            comboBox1.Items.Clear();
            sqldt = SqlDataSourceEnumerator.Instance.GetDataSources();
            foreach (DataRow dr in sqldt.Rows)
            {
                comboBox1.Items.Add(dr[0].ToString() + "\\" + dr[1].ToString());
            }
            comboBox1.SelectedValue = sqldt;
            #endregion
        }

Da wird bei der Expressversion COMPUTER\INSTANZ und bei der normalen nur COMPUTER\ angezeigt.

1.552 Beiträge seit 2010
vor 12 Jahren

Der ConnectionString besagt ja im Normalfall "Data Source=COMPUTER\INSTANZ;UserID

Jein, auch dort kann der Instanzname weggelassen werden.
Dass es in deinem Fall nicht funktioniert ist wie folgt:
SQL Server Express erstellt SQLEXPRESS als Instanzname wenn nicht anders angegeben.
SQL Server erstellt den Standardinstanznamen MSSQLSERVER wenn nicht anders angegeben

Wenn jedoch zur Standardinstanz verbunden werden möchte, dann DARF kein Name angegeben werden, da die Standardinstanz bei der Verbindung leer sein muss.

Die Standardinstanz hat keinen Namen und wird mit dem Computernamen angezeigt.

Dies ist dann auch der Grund wieso es bei SQLEXPRESS mit dem Instanznamen funktioniert, bei SQLSERVER nicht

Da wird bei der Expressversion COMPUTER\INSTANZ und bei der normalen nur COMPUTER\ angezeigt.

Wie MSDN sagt, ist dies das korrekte Verhalten.

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

M
402 Beiträge seit 2005
vor 12 Jahren

Hi...

ich hatte/habe teilweise auch so ein (ähnliches) Problem.

Bei mir hats dann funktioniert als ich den dynamischen Port den die Express-Instanz verwendet beim Connectionstring angegeben habe...

COMPUTER\SQLEXPRESS,34234

Finden kann man den Port über die SQL-Server-Konfiguration (siehe Screenshot). Eventuell muss dieser Port dann auch in der Windowsfirewall eingetragen werden.

Ich habe leider keine Ahnung warum das (nur bei manchen Installationen) auftritt und somit notwendig ist. Aber vielleicht gibts ja dafür auch eine Lösung. 😉

lg

S
Steffen2012 Themenstarter:in
70 Beiträge seit 2012
vor 12 Jahren

ich hab jetzt mal auf dem normalen SQLServer eine neue Instanz installiert. Und siehe da es geht auch mit COMPUTER\NEUEINSTANZ.

1.552 Beiträge seit 2010
vor 12 Jahren

Gehts auch ohne Instanznamen beim SQLServer?
Bzw gehts lokal bei der Standardinstanz?

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

3.511 Beiträge seit 2005
vor 12 Jahren

Moin,

das Problem wird sein, dass der SQL Express den TCP-Port von Haus aus deaktiviert. Den musst du erst aktivieren (nennt sich auch Remotezugriff). Das hat mit den Instanznamen rein gar nichts zu tun.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

3.825 Beiträge seit 2006
vor 12 Jahren

Eventuell muss auch der SQL-Browserdienst aktiviert werden.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3