Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Prozedur mit Rowcount und Loops

Frage Entwicklung Datenbanken

Mitglied: Praktikantin

Praktikantin (Level 1) - Jetzt verbinden

14.10.2009 um 15:51 Uhr, 3363 Aufrufe, 7 Kommentare

Hallo alle zusammen,

ich habe ein kleines Problem. Ich habe ein Sql - Update erstellt dass alle nicht numerische Charaktere mit nichts ersetzt. Wenn ich diese querys einzeln laufe dann funktioniert alles prima. Wenn ich die 2 aber zusammen laufe dann passiert nichts. Ich will diese 2 Abfragen in einer Prozedur einfugen und das habe ich schon aber wie gesagt es klappt nicht. Ich mache etwas Falsch mit den Loops... Bitte hilft mir weiter!!!!!!

Der Code ist -->


01.
 
02.
while @@rowcount > 0 
03.
 
04.
update inv 
05.
set inv.inv_number = replace(inv.inv_number, substring(inv.inv_number, patindex('%[^0-9]%', inv.inv_number), 1), '') 
06.
--select inv_number, replace(inv.inv_number, substring(inv.inv_number, patindex('%[^0-9]%', inv.inv_number), 1), '')	 
07.
from 	exp_invoice_temp as inv 
08.
	where  inv.retailer_id = 1282 
09.
	--	and sender_id = 2665   
10.
		and inv.seq is null 
11.
and patindex('%[^0-9]%', inv.inv_number) <> 0 
12.
		 
13.
 
14.
 
15.
 
16.
while @@rowcount > 0 
17.
 
18.
update r 
19.
set r.ref_inv_number = replace(r.ref_inv_number, substring(r.ref_inv_number, patindex('%[^0-9]%', r.ref_inv_number), 1), '') 
20.
--select * 
21.
from 	exp_invoice_temp as inv 
22.
		inner join exp_inv_relevant_inv as r 
23.
		on inv.exp_inv_id = r.exp_inv_id 
24.
	where	inv.retailer_id = 1282  
25.
	--	and inv.sender_id = 2665  
26.
		and patindex('%[^0-9]%', r.ref_inv_number) <> 0 
27.
		and inv.seq is null 
28.
 

Vielen dank!!!

Julia
Mitglied: dog
14.10.2009 um 16:02 Uhr
Verrätst du uns auch noch um welche SQL-Implementation es sich handelt?
Bitte warten ..
Mitglied: Praktikantin
14.10.2009 um 16:47 Uhr
Hallo dog (Inuyasha),

tut mir leid hab es vergessen... Es ist für den Sql Server.

Julia
Bitte warten ..
Mitglied: dog
14.10.2009 um 18:26 Uhr
Ich kenne mich mit SQL Server zwar nicht aus, aber müsste es nicht eher

01.
while @@rowcount > 0 
02.
	BEGIN 
03.
 
04.
		update inv 
05.
			set inv.inv_number = replace(inv.inv_number, substring(inv.inv_number, patindex('%[^0-9]%', inv.inv_number), 1), '') 
06.
			from exp_invoice_temp as inv 
07.
				where  inv.retailer_id = 1282 
08.
					and inv.seq is null 
09.
						and patindex('%[^0-9]%', inv.inv_number) <> 0 
10.
 
11.
		update r 
12.
			set r.ref_inv_number = replace(r.ref_inv_number, substring(r.ref_inv_number, patindex('%[^0-9]%', r.ref_inv_number), 1), '') 
13.
			from exp_invoice_temp as inv 
14.
				inner join exp_inv_relevant_inv as r 
15.
					on inv.exp_inv_id = r.exp_inv_id 
16.
				where	inv.retailer_id = 1282  
17.
					and patindex('%[^0-9]%', r.ref_inv_number) <> 0 
18.
						and inv.seq is null 
19.
	END
sein?

Grüße

Max
Bitte warten ..
Mitglied: Praktikantin
14.10.2009 um 19:02 Uhr
Hallo Max,

leider läuft es nicht so... Danke auf jeden Fall für die schnelle Antwort!!!

Julia
Bitte warten ..
Mitglied: MadMax
15.10.2009 um 09:50 Uhr
Hallo Julia,

vielleicht solltest Du erst mal dafür sorgen, daß @@rowcount > 1 ist, indem Du z.B. ein "select 1" vor die beiden "while @@rowcount > 1" stellst.

Gruß, Mad Max
Bitte warten ..
Mitglied: Praktikantin
15.10.2009 um 10:25 Uhr
Hallo Max,

das werde ich mal versuchen. Danke noch einmal für den Tipp!

Julia
Bitte warten ..
Mitglied: Netzheimer
20.10.2009 um 08:43 Uhr
Hallo Julia

<code>

while @@rowcount > 0

update inv
set inv.inv_number = replace(inv.inv_number,
substring(inv.inv_number, patindex('%[^0-9]%',
inv.inv_number), 1), '')
--select inv_number, replace(inv.inv_number,
substring(inv.inv_number, patindex('%[^0-9]%',
inv.inv_number), 1), '')
from exp_invoice_temp as inv
where inv.retailer_id = 1282
-- and sender_id = 2665
and inv.seq is null
and patindex('%[^0-9]%', inv.inv_number) <> 0

...

Ich glaube, dein Problem liegt daran, dass @@rowcount die Anzahl betroffener Zeilen zählt, somit also nach dem Statement stehen müsste.

Was möchtest du denn mit Rowcount zählen?

Der Ansatz von dog mit BEGIN und END nach dem WHILE ist schon mal gut. Gehört sich so.

Gruß, Netzheimer
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Mehrere Prozeduren untereinander ausführen

Frage von c64b311ee9 zum Thema Datenbanken ...

Drucker und Scanner
gelöst Wie komme ich ins Service-Menü bei einem HP CP5225dn? (8)

Frage von HorizonThales zum Thema Drucker und Scanner ...

Webbrowser
gelöst Datei in Firefox Profilordner kopieren (9)

Frage von DarkScabs zum Thema Webbrowser ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (21)

Frage von McLion zum Thema Router & Routing ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (20)

Frage von jensgebken zum Thema Windows Server ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (13)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...