SQL创建表[默认]

时间:2013-03-06 06:35:10

标签: sql sql-server sql-server-2000

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

我正在创建一个Serial表,其中包含FromTo,有些只是单数。

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

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

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

1 个答案:

答案 0 :(得分:0)

创建一个

视图
CREATE VIEW MyView AS
SELECT 
  Serial_Fr,
  Serial_To =  COALESCE(Serial_To,Serial_Fr)
FROM MyTable

或者这可以在Stored Procedure

中完成

但是将Serial_To中的某些条目保留为NULL会出现什么问题?


修改

ISNULLT-sqlCOALESCE是92标准sql。对这些函数HERE ON SO

之间的细微差别进行了很好的讨论

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