0

我可以指定 DEFAULT 来获取列的确切值吗?

我正在创建一个Serial带有范围的表格,有些有FromTo有些只是单数。

因此我有两列:[Serial_Fr]&[Serial_To]

如果我只插入Serial_Fr,我想填充Serial_To = Serial_Fr.

我怎么做?或者我应该使用触发器并设置默认 = '',这样做我认为当我拥有数百万个连续剧时会造成压力。

4

1 回答 1

0

创建一个视图

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
于 2013-03-06T08:13:25.190 回答