Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Update in Access nach MSSQL konvertieren

Frage Entwicklung Datenbanken

Mitglied: UNeverNo

UNeverNo (Level 1) - Jetzt verbinden

13.02.2007, aktualisiert 14.02.2007, 5473 Aufrufe, 5 Kommentare

Gesucht sind Entsprechungen zu einigen Access-Funktionalitäten

Ich möchte folgenden ACCESS-Befehl unter MSSQL lauffähig machen. MSSQL kennt z.B. kein UCase, Right, Left, Len und & vermutlich auch nicht. Wie sehen die entsprechenden Befehle - oder sofern sie nicht vorhanden sind Alternativen - in MSSQL aus?

Update Tabelle Set Name = "I:\NAME" & Right(Name, Len(name)-9) Where Ucase(Left(Name,9)) = "C:\NAME"

Es soll praktisch aus C:\NaMe\Pfad I:\NAME\Pfad gemacht werden.
Mitglied: Biber
13.02.2007 um 18:50 Uhr
Moin UNeverNo,

01.
Update Tabelle Set Name = 'I:\NAME' & Right(Name, Len(name)-7)  
02.
 Where Upper(Left(Name,7)) = 'C:\NAME'
HTH Biber
Bitte warten ..
Mitglied: MadMax
13.02.2007 um 22:45 Uhr
Nabend,

fast richtig Biber, aber das "&" muß einem "+" weichen. Außerdem ist "Len" mit Vorsicht zu genießen, weil es Leerzeichen am Ende nicht berücksichtigt. Sicherer ist da ein Substring (Name, 10, 8000), wobei die 8000 auch die Maximallänge von "Name" sein kann. Es ist jedenfalls kein Problem, wenn die Zahl größer ist, als die tatsächlich vorhandenen Zeichen. Dementsprechend würde der Befehl dann lauten:
01.
Update Tabelle 
02.
Set Name = 'I:\NAME' + Substring (Name, 8, 8000) 
03.
Where Upper (Left (Name, 7)) = 'C:\NAME'
Gruß, Mad Max
Bitte warten ..
Mitglied: Biber
13.02.2007 um 23:01 Uhr
Upps, mad Max,

mit dem "+" hast Du natürlich Recht.
Das TRIMmen wollte ich mir schenken, hatte es zwar gesehen, aber...
Aber egal, dann lass es uns weiter verfeinern:
01.
Update Tabelle 
02.
Set Name = 'I:\NAME' + RTrim(Substring (Name, 8, 8000)) 
03.
Where Upper (Left (Name, 7)) = 'C:\NAME';
-oder, an meine Variante angelehnt-
01.
Update Tabelle  
02.
Set Name = 'I:\NAME' + Right(Rtrim(Name), Len(RTrim(name))-7)  
03.
 Where Upper(Left(Name,7)) = 'C:\NAME';
oder wir jagen über alle Sätze zwei Statements rüber:
01.
Update tabelle Set name = Replace(name, 'C:\', 'I:\'); 
02.
Update tabelle Set name = Replace(name, 'c:\', 'i:\');
..hart, aber herzlich..

Grüsse
Biber
Bitte warten ..
Mitglied: UNeverNo
14.02.2007 um 10:10 Uhr
An Replace hatte ich in der Tat nicht gedacht...werde ich gleich mal probieren.
Hatte einen etwas umständlicheren Weg gewählt, der aus mir jedoch unerfindlichen Gründen nicht funktioniert...
Komischerweise wird auch die Funktion Left und Right nicht erkannt, d.h. das Syntaxhighlighting läßt den Befehl grau, statt in pink einzufärben.

In der Tabelle habe ich in der Spalte detail einen Wert à la
01.
texttextnochmehrtextC:\pfadnochmehrtext
Testhalber wollte ich nur den Teil vor C:\pfad auslesen.
In Access sah das so aus
01.
Select Left(detail,instr(detail,'C:\pfad')-1) FROM Tabelle
In SQL-Server dachte ich an
01.
SELECT Substring(Detail, 1, (Charindex('C:\pfad', Detail))-1) FROM Tabelle
Das würde mir genau das liefern was ich brauche; allerdings weigert er sich strikt mir die -1 abzuziehen
01.
Meldung 536, Ebene 16, Status 5, Zeile 4 
02.
Es wurde ein ungültiger Längenparameter an die SUBSTRING-Funktion übergeben.
+1 hingegen frißt er problemlos, ohne zusätzlich Addition liefert er
01.
texttextnochmehrtextC
zurück, also genau das C zuviel...
Bitte warten ..
Mitglied: MadMax
14.02.2007 um 13:35 Uhr
Moin,

@Biber: man sollte wohl abends keine Beiträge mehr beantworten, wenn man müde ist übersieht man das Triviale

@UNeverNo: Du solltest mit
01.
Where Charindex ('C:\pfad', Detail) > 0
die Datensätze einschränken. Wenn 'C:\pfad' nämlich nicht in der Spalte Detail existiert, versucht er eine Zeichenkette der Länge -1 zu ermitteln, und dann krachts.

Gruß, Mad Max
Bitte warten ..
Ähnliche Inhalte
Windows Server
MSSQL Arbeitsspeicher Auslastung (6)

Frage von Jabberwocky86 zum Thema Windows Server ...

Windows 7
Basisdatenträger in Dynamischen Konvertieren (6)

Frage von 131944 zum Thema Windows 7 ...

Windows Server
MSSQL Hotfix in Spiegelumgebung

Frage von petere zum Thema Windows Server ...

PHP
PHP UTF8 zu CP 850 konvertieren (2)

Frage von wescraven07 zum Thema PHP ...

Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(1)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (17)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

E-Business
Wo tragt ihr eure privaten Termine ein? (14)

Frage von honeybee zum Thema E-Business ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...