我可以指定DEFAULT以獲取列的確切值嗎?SQL創建表[默認]
我正在創建一個Serial
表,有範圍,有的有From
和To
,有的只是單數。
因此,我有兩列:[Serial_Fr]
& [Serial_To]
如果我插入Serial_Fr
只,我想填充Serial_To = Serial_Fr
。
我該怎麼做?或者我應該使用觸發器,並設置默認值='',在這樣做時,我認爲這會在我擁有數百萬個連續劇時造成壓力。
我可以指定DEFAULT以獲取列的確切值嗎?SQL創建表[默認]
我正在創建一個Serial
表,有範圍,有的有From
和To
,有的只是單數。
因此,我有兩列:[Serial_Fr]
& [Serial_To]
如果我插入Serial_Fr
只,我想填充Serial_To = Serial_Fr
。
我該怎麼做?或者我應該使用觸發器,並設置默認值='',在這樣做時,我認爲這會在我擁有數百萬個連續劇時造成壓力。
創建視圖是
CREATE VIEW MyView AS
SELECT
Serial_Fr,
Serial_To = COALESCE(Serial_To,Serial_Fr)
FROM MyTable
否則,可能在Stored Procedure
做,但什麼是錯的留下一些Serial_To
作爲NULL
條目?
編輯
ISNULL
T-sql
是:COALESCE
是92標準的SQL。有這些功能HERE ON SO
馬丁·史密斯也指有說明了差異這個有趣的例子文章之間的細微差別了很好的討論:
DECLARE @test VARCHAR(2)
DECLARE @first VARCHAR(4)
DECLARE @second VARCHAR(4)
SELECT @first = ISNULL(@test, 'test')
SELECT @second = COALESCE(@test, 'test')
PRINT @first
PRINT @second
*** *** SQL剛好在*結構化查詢語言* - 許多數據庫系統使用的語言,但不是數據庫產品...許多東西都是特定於供應商的 - 所以我們真的需要知道您的數據庫系統**(以及哪個版本)使用.... – 2013-03-06 06:38:04
MSSQL對不起,在急於打字。 – Sid 2013-03-06 06:44:32
你必須使用一個觸發器,但你也可以在查詢表時將它保留爲NULL並處理它。類似於'BETWEEN Serial_Fr AND ISNULL(Serial_To,Serial_Fr)' – 2013-03-06 06:51:05