【发布时间】:2015-09-22 13:50:27
【问题描述】:
我正在尝试创建一个表,对于其中一个列,我希望指定默认值 - 请参阅下面的代码:
CREATE TABLE dbo.PSTest(
modDate datetime default getdate()
, [Date] datetime default (SELECT CONVERT (DATE, GETDATE()))
);
我收到以下错误
Msg 1046, Level 15, State 1, Line 28
Subqueries are not allowed in this context. Only scalar expressions are allowed.
我知道我不能这样做,但是有没有办法解决这个问题?
提前谢谢你
【问题讨论】:
-
Date是否总是与modDate在同一天?如果是这样,计算列几乎肯定是更好的选择。 -
不。 modDate 将是 datetime 但在 Date 我不想要任何时间输出元素。只是纯粹的 yyyy-mm-dd 没有时间延长。使用当前答案,我在 modDate as-2015-09-22 14:02:31.870 和日期为 2015-09-22 00:00:00.000 上得到输出。我根本不想要日期列中的时间
-
这并没有回答我提出的问题。我在问这两列是否总是会有两个相关的值(即如果
modDate被更新,Date也会更新到匹配的日期)?