Sql 如何在选择查询中使用默认值?
我创建了如下默认值:Sql 如何在选择查询中使用默认值?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我创建了如下默认值: 将默认[dbo].[MAX_DATE]创建为'31/12/9999 23:59:59' 现在我想从sql查询返回它。我试过这个: 选择 案例日期\u字段何时dbo.MAX\u日期然后“”其他日期\u字段结束 从…起 我的桌子 但是,我得到以下错误: Server: Msg 107, Level 16, State 2, Line 2 The column prefix 'dbo' does not match with a table name or alias nam
将默认[dbo].[MAX_DATE]创建为'31/12/9999 23:59:59'
现在我想从sql查询返回它。我试过这个:
选择
案例日期\u字段何时dbo.MAX\u日期然后“”其他日期\u字段结束
从…起
我的桌子
但是,我得到以下错误:
Server: Msg 107, Level 16, State 2, Line 2
The column prefix 'dbo' does not match with a table name or alias name used in the query.
默认值是通过将它们绑定到列来使用的。当创建行而未指定列值时,服务器将应用默认值。(见:) 这里有3个选项供您选择: 选项(1) 看起来您正在使用“命名常量”进行比较。在这种情况下,您可能需要使用一个函数,例如:
CREATE Function [dbo].[MAX_DATE] ()
Returns Datetime
as
BEGIN
Return '99991231 23:59:59'
END;
GO
select dbo.MAX_DATE()
备选方案(2)
您可以考虑的另一个选项是有一个命名常量表。它可能有以下列:ID(autonumber)、ValueName、numValue、strValue、dtValue、binValue。您将根据存储在其中的值类型填充ValueName和相应的列
备选方案(3)
要仅在当前脚本中使用常量,可以声明一个值并设置其值,然后在脚本的其余部分中使用它。这些变量超出了它们的批处理范围,因此当脚本完成运行或SQL遇到GO语句时。例如
DECLARE @MAX_VALUE as datetime
set @MAX_VALUE = '99991231 23:59:59'
select @MAX_VALUE
这可能有助于检索默认值: