将获得表模式和创建日期的SQL语句

时间:2014-12-09 01:16:16

标签: sql sql-server where-clause sqldatetime

我正在尝试创建一个SQL语句,它将返回表模式名称以及数据是否在前一天创建。

这将使用表模式名称创建SQL语句:

DECLARE @SqlStatement VARCHAR(MAX)
SELECT @SqlStatement = 
    COALESCE(@SqlStatement, '') + 'DROP TABLE [TMP].' + QUOTENAME(TABLE_NAME) + ';' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TMP'

PRINT @SqlStatement

如果表是在一天前创建的,那么如何在同一语句中添加where子句?

1 个答案:

答案 0 :(得分:2)

create_date字段存储在sys.tables中。然后,您可以加入sys.schemas以获取架构名称。

这样的事情:

declare @SqlStatement varchar(max)
select @SqlStatement = COALESCE(@SqlStatement, '') + 'DROP TABLE [TMP].' + QUOTENAME(t.name) + ';' + CHAR(13)
from sys.tables t 
    join sys.schemas s on t.schema_id = s.schema_id 
where s.name = 'TMP'
    and t.create_date > dateadd(day,-1,getdate())
print @SqlStatement