fUnKuCh3n
Erfahrenes Mitglied
Hallo, ich habe eine Abfrage, diese holt sich aus einer bestimmten Spalte in der DB Werte von PC-Herstellern, jedoch stehen dort z.b. mal: "Dell Inc." oder "Dell Computers" und ich möchte gerne bevor die Werte in eine andere Spalte der DB geschrieben werden alles was %Dell% ist auf "Dell" ändern, also alles was davor/hinter steht einfach weg haben.
Meine Prozedur lautet wie folgt:
Kann mir einer auf die Sprünge helfen?
Danke!
Meine Prozedur lautet wie folgt:
SQL:
ALTER PROCEDURE [dbo].[herstellerupdate]
AS
begin
declare @guid varchar (40)
declare @value varchar (1024)
declare hersteller cursor local fast_forward read_only
for
SELECT inp1.guid_machine, inp1.description
FROM inventory_nodeproperties inp1
WHERE inp1.entry like 'System Manufacturer'
AND description not like ''
AND description not like 'Unknown'
AND EXISTS ( SELECT description FROM inventory_nodeproperties inp2 WHERE inp2.guid_machine = inp1.guid_machine and inp2.datetime = inp1.datetime AND inp2.entry = 'System Manufacturer' AND inp1.node_id = inp2.node_id AND description NOT LIKE '')
AND inp1.datetime = (SELECT MAX(datetime) FROM inventory_scans WHERE inventory_scans.guid_machine = inp1.guid_machine );
open hersteller;
fetch next from hersteller
into @guid, @value;
while @@fetch_status = 0
begin
if exists (select * from vars where guid_link = @guid and scope = '__MACHINE__' and category = 'Hardware' and name = 'Hersteller')
begin
update vars
set
value = @value
where guid_link = @guid
and scope = '__MACHINE__'
and category = 'Hardware'
and name = 'Hersteller';
end
else
begin
insert
into vars
values
(@guid, '__MACHINE__', 'Hardware', 'Hersteller', @value);
end
fetch next from hersteller
into @guid, @value;
end
close hersteller;
deallocate hersteller;
end
Kann mir einer auf die Sprünge helfen?
Danke!
Zuletzt bearbeitet von einem Moderator: