【发布时间】:2021-01-26 14:13:03
【问题描述】:
我的查询如下所示:
SELECT
OBJECT_SCHEMA_NAME(T.[object_id],DB_ID()) AS [Schema]
,T.[name] AS [Table], AC.[name] AS [Column]
,TY.[name] AS [Data Type]
,sep.[value] AS [Description]
,AC.[max_length] AS [Maximum Field Length]
,create_date AS [Date Created]
,modify_date AS [Date Modified]
,CASE WHEN is_identity = 1 THEN 'Yes' ELSE 'No' END AS [Primary Key]
,CASE WHEN AC.[is_nullable] = 1 THEN 'Yes' ELSE 'No' END AS [Allows Nulls]
-- INTO
-- tmp_desc
FROM sys.[tables] AS T
INNER JOIN sys.[all_columns] AC ON T.[object_id] = AC.[object_id]
INNER JOIN sys.[types] TY ON AC.[system_type_id] = TY.[system_type_id] AND AC.[user_type_id] = TY.[user_type_id]
left join sys.extended_properties sep on t.object_id = sep.major_id
and ac.column_id = sep.minor_id
and sep.name = 'MS_Description'
WHERE
T.[is_ms_shipped] = 0
...列出我的表格和字段中的一些属性。
所以当我执行以下步骤时,会发生奇怪的事情:
- 我运行 SELECT,但尚未创建临时表(我运行了一个删除表以防万一):1018 条记录返回
- 我运行 SELECT INTO(在上面的代码中取消注释):1028 条记录受影响
- 我再次注释掉 INTO,暂时不要删除临时表,并且只选择:1028 条记录返回
- 我运行 'select * from tmp_desc':1028 条记录返回
- 我删除了临时表并再次运行 SELECT ONLY:1018 条记录返回
如果 tmp_desc 不是来自查询的一部分,那么创建临时表的任何想法都会影响从查询返回的行?
【问题讨论】:
标签: sql sql-server tsql ssms