我有一个SQL查询,它查询一个我既不需要也不想理解的庞大数据库(例如,数百个带有难以阅读的名称的视图/表,如CMM-CPP-FAP-ADD)。此查询的结果需要存储在临时表中,以便提供报告。
我需要创建临时表,但由于要挖掘数百个视图/表来查找这里所表示的数据类型,我不得不怀疑是否有更好的方法来构造这个表。
有人能告诉我如何使用SQL Server 2008工具来预测我的SQL 2000数据库中的源数据类型吗?
作为一个通用示例,我想从查询中了解情况,例如:
SELECT Auth_First_Name, Auth_Last_Name, Auth_Favorite_Number
FROM Authors我想知道的不是实际的结果,而是:
Auth_First_Name is char(25)
Auth_Last_Name is char(50)
Auth_Favorite_Number is int我对约束不感兴趣,我只想知道数据类型。
发布于 2009-10-21 23:46:27
select * from information_schema.columns可以帮你入门。
发布于 2017-09-22 18:18:31
对于SQL Server 2012及更高版本:如果将查询放入字符串中,则可以获得如下结果集数据类型:
DECLARE @query nvarchar(max) = 'select 12.1 / 10.1 AS [Column1]';
EXEC sp_describe_first_result_set @query, null, 0; 发布于 2014-09-27 04:07:30
您还可以将结果(或前10个结果)插入到临时表中,并从临时表中获取列(只要列名都不同)。
SELECT TOP 10 *
INTO #TempTable
FROM <DataSource>然后使用:
EXEC tempdb.dbo.sp_help N'#TempTable';或
SELECT *
FROM tempdb.sys.columns
WHERE [object_id] = OBJECT_ID(N'tempdb..#TempTable');是从Aaron's answer here推断出来的。
https://stackoverflow.com/questions/1601727
复制相似问题