我可以指定 DEFAULT 来获取列的确切值吗?
我正在创建一个Serial带有范围的表格,有些有From,To有些只是单数。
因此我有两列:[Serial_Fr]&[Serial_To]
如果我只插入Serial_Fr,我想填充Serial_To = Serial_Fr.
我怎么做?或者我应该使用触发器并设置默认 = '',这样做我认为当我拥有数百万个连续剧时会造成压力。
我可以指定 DEFAULT 来获取列的确切值吗?
我正在创建一个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_Toas 有什么问题NULL?
编辑
ISNULLis T-sql:COALESCE是 92 标准的 sql。有一个很好的讨论这些功能之间的细微差别在这里
Martin Smith 还提到了一篇文章,其中有一个有趣的例子,说明了不同之处:
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