我正在尝试创建一个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子句?
答案 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