Jump to content

AngelOfEffekt

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Profile Fields

  • Member Title
    Newbie

Fortschritt von AngelOfEffekt

Rookie

Rookie (2/14)

  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei
  • 1 Jahre dabei

Neueste Abzeichen

10

Reputation in der Community

  1. Hi, ich habe einen Trigger, der auf insert und update reagiert. Wenn eine ID angegeben ist, soll diese gesucht werden und bei fund soll dieser datensatz geupdated werden. sonst gibts einen ganz neuen Datensatz mit der id. klappt bei insert, bei update nur teilweise. Und zwar dahingehend, dass (was zwar logisch, aber hinderlich ist) bei einer id, die noch nicht vorhanden ist, keine daten im Inserted stehen. Gibt es allgemein eine Möglichkeit, an die 'Roh'-Daten des Insert- oder Update-Befehls zu kommen? Hier mal kurz mein bsp-Code. tabelle testtabelle (id int, name char) create trigger trGamesInsteadInsertUpdate on testtabelle instead of insert, update as begin declare @new varchar(50) declare @old varchar(50) declare @id tinyint declare @count tinyint set @new = (select name from inserted); set @id = (select id from inserted); set @count = (select COUNT(*) from testtabelle where id = @id) if(@count > 0) begin update testtabelle set name = @new where id = @id set @old = (select name from deleted); end else begin insert into testtabelle values (@id, @new) end select @new, @old, @id end insert into testtabelle (id, name) values ( 0,N'neu' --Klappt update testtabelle set name = N'hehe' where id =N'0' --klappt auch update testtabelle set name = N'hehe' where id =N'0' --klappt nicht, da keine Änderung vollzogen worden wäre... )
  2. Hallo, wir haben im Untericht das Thema Seitenreservierung pro Tabelle. Dazu hier mal fix n kleines Bsp.: create table Kunde( kid smallint not null, k_name char(50) not null, k_adresse1 char(50) not null, k_adresse2 char(50) not null, k_wohnort char(50) not null, k_bundesland char(2) not null, k_plz char(10) not null, k_telefon char(20) not null, k_fax char(20) not null, k_email char(30) not null, k_homepage char(20) not null ) Das sind dann also 304 Byte + 10Byte je Zeile (9 Spalten mit char) = 300Byte + 1 Spalte mit smallint= 2Byte + 1 Spalte mit char(2) = 2Byte 304Byte + 10Byte je Zeile (null-Bitmap & Header Die Seitenreservierung soll nun 8096/314 = 25,78 Seiten) Dh. wenn ich eine sehr kleine Tabelle (zB. Hilfstabelle für NM-Beziehung) create table klein ( hid smallint not null, aid smallint not null, mid int not null ) 2*2 + 4 + 10 = 18Byte 8096 / 18 = 449,7...7Seiten So hat uns das unser Dozent erklärt. Jetzt meine Frage: Worin liegt hier der Hintergrund. Warum reserviert der Server bei kleinen Tabellen automatisch mehr Seiten? LG AoE
×
×
  • Neu erstellen...