怎么查出数据库product_center的所有表中的created_at字段没有数据的表,不要用动态sql
时间: 2024-12-23 08:24:06 浏览: 3
要在SQL中查询所有`product_center`数据库下的表中`created_at`字段没有数据的表,通常需要逐张表检查,因为数据库元数据通常是静态的,没有直接提供获取所有表信息并筛选特定字段是否为空的功能。不过,假设你知道所有的表名都在某个固定的位置,比如一个名为`table_list`的视图或者一个固定的表格列表,你可以创建一个循环,然后对每个表执行SELECT COUNT(*) FROM table_name WHERE created_at IS NULL。
以下是一个通用的SQL示例,假设`table_list`列包含所有的表名:
```sql
DECLARE @tables TABLE (table_name NVARCHAR(255))
INSERT INTO @tables (table_name) SELECT name FROM sys.tables WHERE SCHEMA_NAME(schema_id) = 'product_center'
DECLARE @current_table NVARCHAR(255)
WHILE EXISTS (SELECT * FROM @tables)
BEGIN
SET @current_table = (SELECT TOP 1 table_name FROM @tables ORDER BY object_id)
IF (SELECT COUNT(*) FROM @current_table WHERE created_at IS NULL) = 0
PRINT 'Table ' + @current_table + ' has data in the created_at column'
ELSE
PRINT 'Table ' + @current_table + ' does not have any data in the created_at column'
DELETE FROM @tables WHERE table_name = @current_table
END
```
这个脚本会依次检查每个表,并报告哪些表的`created_at`字段没有数据。请注意,这只是一个示例,实际执行可能会受限于你的数据库管理系统(如MySQL、PostgreSQL、Oracle等)的不同语法。
阅读全文