« Johann Wolfgang von Goethe | Main| Motivation am Arbeitsplatz »

Man soll ja nie nie sagen und immer bereit sein, was

0
Kategorie  
hinzu zu lernen.

Letzte Woche hatte ich so ein Erlebnis
Unsere Enterprise DBA's waren hier und bemerkten, dass wir linked Server in unserer Anwendung "hardcodiert" haben.

So etwa select * from RemoteServer.Database.dbo.Table
der Hinweis, "Es existieren Tools, womit wir das Schema bei einem Umzug automatisiert adaptieren", wurde nicht akzeptiert.
Also ein Beispiel gesucht:
declare @Count int
select @count = count(*) from RemoteServer.Database.dbo.Table

müßte dann ja in etwa wie folgt umgeschrieben werden ->

declare @Count int
declare @RemoteServer varchar(255)
declare @Sql varchar(1024)
set @RemoteServer = 'RemoteServer'
set @Sql = 'select @count = count(*) from ' + @RemoteServer + '.Database.dbo.Table'
Exec(@Sql)

Nur dass dies leider nicht funktioniert, weil man ja in dynamischen SQL keine Chance hat Variablen zu setzen, so dachte ich

Aber es exisitert die Stored Procedure sp_execsql
mit dieser ist es möglich Parameter an ein Dynamic-SQL zu übergeben und auszulesen.

Das Enterprise-Statement sieht dann wie folgt aus:

declare @Count int
declare @RemoteServer varchar(255)
declare @Sql nvarchar(1024)
declare @Param nvarchar(1024)
set @RemoteServer = 'RemoteServer'
set @Sql = 'select @pcount = count(*) from ' + @RemoteServer + '.Database.dbo.Table'
set @Param = 'pcount int OUTPUT'
Execute @Sql,@Param,@pcount = @count OUTPUT

Auch wenn die Ausführungszeit ein wenig langsamer sein sollte, wir reden evtl. von Millisekunden, hat es den Vorteil, dass in den verschiedenen Systemen (Testing, Staging, Produktion) das selbe Datenbank-Schema genutzt werden kann.

Gruß JJR
P.S.: Schade, dass ich hierzu noch keine Quelle gefunden habe, welche "Best Practices" für die Implementierung einer Enterprise-Datenbank enthält.

Mach einen Kommentar

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Amazon


Impressum

Firmenname: Peanuts-Soft
Straße Nummer: Biinger Strasse 8
PLZ Ort: 55263 Wackernheim
Telefon: +491772134526
E-Mail: joerg.reck @ peanuts-soft.de
Disclaimer: Peanuts-Soft übernimmt keine Garantie dafür, dass die auf dieser Website bereitgestellten Informationen vollständig, richtig und stets aktuell sind. Dies gilt auch für alle Links, auf die verwiesen wird. Peanuts-Soft ist für die Inhalte, auf die per Link verwiesen wird, nicht verantwortlich. Peanuts-Soft haftet nicht für konkrete, mittelbare und unmittelbare Schäden oder Schäden, die durch fehlende Nutzungsmöglichkeiten, Datenverluste oder entgangene Gewinne – sei es aufgrund der Nichteinhaltung vertraglicher Verpflichtungen, durch Fahrlässigkeit oder eine andere unerlaubte Handlung – im Zusammenhang mit der Nutzung von Dokumenten oder Informationen bzw. der Erbringung von Dienstleistungen entstehen, die auf dieser Web Site zugänglich sind.
Datenschutz: Inhalt und Gestaltung der Internetseiten sind urheberrechtlich geschützt. Eine Vervielfältigung der Seiten oder deren Inhalte bedarf der vorherigen schriftlichen Zustimmung von Peanuts-Soft.


Locations of visitors to this page

Powered By

Domino BlogSphere
Version 3.0.2