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

Prozedur mit Rowcount und Loops

Frage Entwicklung Datenbanken

Mitglied: Praktikantin

Praktikantin (Level 1) - Jetzt verbinden

14.10.2009 um 15:51 Uhr, 3315 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 ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...