Jump to content
jiscar

Belegnummernvergabe ohne auto_increment

Empfohlene Beiträge

Hallo, 

Ich würde gerne einen Wert (Belegnummer) meiner Datenbank beim neu einlegen um 1 erhöhen ohne  auto_increment, evtl. mit ein Hilfstabelle oder ein FUNCTION.

 

Beispiel:

Letzter Schlüssel: 2017-0001

Nächster Schlüssel: 2017-0002

 

Hat jemand ein Fertig Lösung? 

 

Gruss, 

SQL-Anfänge

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

vielen Dank für Ihre schnelle Antwort.

 

@Cybquest: danke für den Tipp, Ich habe die "after insert Trigger" gegooglet und ein Halbe Lösung gefunden!

Diese Trigger funktioniert leider nur bis 2017-9999,

CREATE TABLE [dbo].[Task](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[TID] [nvarchar](50) NULL DEFAULT ('2017-0000'),
	[name] [nchar](10) NULL,
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

go

ALTER trigger insertTask
on Task
after insert as
begin
    update Task
    set TID = REPLACE(CONVERT(CHAR(4), YEAR(GETDATE()), 103), '/', '')+'-'
                   + RIGHT('000' + CAST(inserted.ID AS VARCHAR(4)), 4)
    from Task
    join inserted on inserted.ID = Task.ID;
end;
go

insert into Task default values;
insert into Task default values;
insert into Task default values;
insert into Task default values;
insert into Task default values;


select * from Task;

Ich suche weiter ....Ich bin natürlich offen für Vorschläge ;)

 

Gruss

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

was soll nach 9999 passieren?

Wenn pro Jahr mehr gehen muss, den hinteren Teil halt gleich 5-stellig machen?

... und dann den Teil einfach so ändern:

                   + RIGHT('0000' + CAST(inserted.ID AS VARCHAR(5)), 5)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×