2016-06-11 13 views
0

ich diesen Code bin mit:SQL-Datenbank auf einem anderen PC-SQL-Datenbank

SqlCommand cmd = new SqlCommand(" MERGE customermaster AS target USING Tamio.dbo.memberform AS source ON target.id = source.id WHEN MATCHED THEN UPDATE SET target.name = source.name WHEN NOT MATCHED THEN INSERT (id, name) VALUES (source.id, source.name);", con); 

Ich möchte von meiner lokalen Datenbank wählen.

Ich versuche, diese aber es sagt, falsche Syntax

SqlCommand cmd = new SqlCommand(" MERGE customermaster AS target USING [local]Tamio.dbo.memberform AS source ON target.id = source.id WHEN MATCHED THEN UPDATE SET target.name = source.name WHEN NOT MATCHED THEN INSERT (id, name) VALUES (source.id, source.name);", con); 

Auch dies ist meine lokale Verbindung ist

SqlConnection con = new SqlConnection(@"Data Source=(local);Initial Catalog=Tamio;Integrated Security=True"); 

und dies ist mein Client-PC-Verbindung

SqlConnection conn = new SqlConnection(@"Data Source=192.168.1.101;Initial Catalog=Imatismos;user ID=admin;Password=1234"); 
+0

Was genau möchten Sie archivieren? –

Antwort

1

Nun, wenn Sie angeben der Servername (wenn Sie linked server verwenden) die Tamio.dbo.memberform Datenbank ist eine lokale Datenbank, die sich meines Wissens aneignet. Im Fall möchten Sie einen anderen Server DB verwenden, und Sie haben bereits definiert Linked Server (mit sp_addlinkedserver) für das dann können Sie

[server_name].Tamio.dbo.memberform 

Dies ist Ihre lokale Verbindungszeichenfolge verwenden sagen, und Sie werden mit einem local DB

SqlConnection con = new SqlConnection(@"Data Source=(local);Initial Catalog=Tamio;Integrated Security=True"); 

Während der andere Server ist anders und haben keine Tamio DB.

+0

Nein, ich möchte keinen Verbindungsserver verwenden. In pc A habe ich eine Datenbank namens Tamio, in pc B habe ich eine Datenbank namens Imatismos. Auch ich bekomme diesen Fehler Konnte Server 'USER-PC \ SQLEXPRESS nicht finden. Mein Code: [USER-PC \\ SQLEXPRESS] .Tamio.dbo.memberform – user6453809

+0

@ user6453809, Sie müssen nicht auf diese Weise zugreifen, da es eine lokale DB ist, verwenden Sie es einfach wie 'Tamio.dbo.memberform'. Keine Notwendigkeit, den Servernamen einzubeziehen. Es wird implizit abgeleitet. – Rahul

+0

Wenn ich es so benutze, sucht Tamio.dbo.memberform meine Datenbank nach zweitem PC B. Mein Code ist über – user6453809

0

Die vierteilige Syntax server.db.schema.object für den Zugriff auf einen anderen Server gilt nur, wenn Sie den Verbindungsserver auf dem Server konfiguriert haben, mit dem Sie verbunden sind. Um eine Ad-hoc-Verbindung zu verwenden, verwenden Sie OPENDATASOURCE https://msdn.microsoft.com/en-us/library/ms179856.aspx

Verwandte Themen