我想在SQL Server中創建一個計算列。試圖在SQL Server中創建一個計算列
這是創建列的腳本。
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
它會返回一個值,這樣InvoiceId
柱:
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
但我想更多的修改它。
服務器時更改日期,然後再從1
開始這是我的期望輸出。
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
正如你可以從上面的結果可以看出,它再次從開始其中來自日期更改爲。
如果無法使用計算列完成,那麼有沒有其他方法可以實現這一點。
我知道有很多帖子與如何創建計算列有關。但是我不知道如何在日期發生變化時再次從1開始。
您能否創建一個函數來返回天數發票的計數? – apc
@apc:我沒有得到你。你算什麼意思? –
我不認爲,這可以通過計算列來實現。您可以使用視圖 – TheGameiswar