将获取表架构和创建日期的SQL语句

将获取表架构和创建日期的SQL语句,sql,sql-server,where-clause,sqldatetime,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 TA

我正在尝试创建一条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子句

创建日期字段存储在系统表中。然后,您可以连接回
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

它显示了今天创建的表。把“>”改成“@nate--从你的问题看,我不是完全肯定是哪个方向。关键是您现在可以访问
create\u date
字段,并可以进行相应的查询。我想查询一天前或之后创建的表名架构。所以我可以删除所有未创建的表today@nate--听起来你在找