Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在选择查询中使用默认值?_Sql_Sql Server_Tsql - Fatal编程技术网

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

这可能有助于检索默认值: