我可以指定 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_To
as 有什么问题NULL
?
编辑
ISNULL
is 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