Próbuję utworzyć kolumnę obliczoną w programie SQL Server.Próba utworzenia kolumny obliczeniowej w SQL Server
To jest skrypt do tworzenia kolumny.
CREATE TABLE [dbo].[Invoice]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[InvoiceID] AS (('INV' + FORMAT(GETUTCDATE(), 'yyyyMMdd')) + RIGHT('000000' + CONVERT([VARCHAR](20), [ID]), (7))),
[Name] [nvarchar](50) NOT NULL,
[CreatedOn] [datetime] NOT NULL
CONSTRAINT [DF_Invoice_CreatedOn] DEFAULT (getutcdate())
) ON [PRIMARY]
GO
To zwróci wartość InvoiceId
kolumny tak:
ID InvoiceID Name CreatedOn
--- -------------------- ------- -----------------------
1 INV201705090000001 amki 2017-05-09 13:11:06.790
2 INV201705090000002 amkit 2017-05-09 13:11:26.600
3 INV201705090000003 amkit3 2017-05-09 13:11:32.397
4 INV201705090000004 amkit6 2017-05-09 13:11:35.070
Ale chcę, aby zmodyfikować go więcej.
Kiedy serwer data zmiany, a następnie ponownie rozpocząć od 1.
To mój oczekiwany wynik.
ID InvoiceID Name CreatedOn
--- -------------------- ------- -----------------------
1 INV201705090000001 amki 2017-05-09 13:11:06.790
2 INV201705090000002 amkit 2017-05-09 13:11:26.600
3 INV201705090000003 amkit3 2017-05-09 13:11:32.397
4 INV201705100000001 amkit6 2017-05-10 13:11:35.070
5 INV201705100000002 amkit6 2017-05-10 13:11:35.070
6 INV201705110000001 amkit6 2017-05-11 13:11:35.070
Jak widać z wyżej rezultacie znowu zacząć od gdzie data zmiana do .
Jeśli nie można tego zrobić przy użyciu kolumny obliczeniowej, to czy istnieje inny sposób, w jaki mogę to osiągnąć.
Wiem, że istnieje wiele postów związanych z tworzeniem kolumny obliczeniowej. Ale nie wiem, jak zrobić to ponownie, zaczynając od 1, gdy data się zmienia.
Czy możesz utworzyć funkcję zwracającą liczbę faktur z dniami? – apc
@apc: Nie dostałem cię. co masz na myśli przez liczbę dni. –
Nie sądzę, można to osiągnąć za pomocą kolumn obliczeniowych.możesz użyć widoku – TheGameiswar