SQL Server:如何按创建日期排序,而不需要指定列。
SQL Server中没有内置的行创建日期信息。
有一些(商业)工具可以从事务日志中提取这些信息。这是在紧急情况下使用的能力,而不是在正常操作期间使用的。
在没有指定列的情况下,可以使用以下解决方法来按创建日期排序:
1. 使用系统函数CURRENT_TIMESTAMP获取当前的时间戳。
SELECT CURRENT_TIMESTAMP;
2. 创建一个临时表,将原始表的数据插入到临时表中,并在临时表中添加一个名为"CreationDate"的列,并将当前时间戳添加为每一行的创建日期。
CREATE TABLE #TempTable (ID INT, Name VARCHAR(50), CreationDate DATETIME); INSERT INTO #TempTable (ID, Name, CreationDate) SELECT ID, Name, CURRENT_TIMESTAMP FROM OriginalTable;
3. 使用临时表进行排序,按"CreationDate"列进行降序排序。
SELECT ID, Name, CreationDate FROM #TempTable ORDER BY CreationDate DESC;
通过以上步骤,可以在没有指定列的情况下按创建日期进行排序。
如果没有指定的日期列,就无法按创建日期排序。据我所知,没有内置的每行创建日期。不过,你有其他一些选择。如果你有一个自动生成的标识列(自增),你可以按照该列排序以找出最先添加的行。
你可以尝试使用数据页中的行位置,就像这个回答提到的那样:Equivalent of Oracle's RowID in SQL Server