如何在SQL Server中任意查询的列模式

时间:2014-06-05 07:25:11

标签: sql sql-server database sql-server-2008

我想在SQL服务器中获得任意sql查询的模式。

例如 -

Create Table Tabl1(Ta1bID int ,col1 varchar(10))

Create Table Tabl2(Tab1ID int ,col2 varchar(20))

SQL查询 -

SELECT col1, col2  
FROM Tab1 
INNER JOIN Tab2 ON Tab1ID =  Tab2ID

此结果将具有此架构 -

Col1 varchar(10), Col2 varchar(20)

我想知道结果的架构是什么。

PS:我刚刚在执行此查询的服务器上读取了访问权限。

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

架构,你的意思是说数据类型对吗?对于结果数据类型,您将始终知道何时对表进行操作。在您的情况下,两列都是varchar数据类型,因此它将提供字符数据类型,您可以将其转换为任何字符数据类型,如varchar,nvarchar,char,ntext等。

基本的是,表格设计是/完成的,所以我们知道为什么定义数据类型的时候,现在当你执行下面的查询时,你总是知道每列的数据类型会带来什么。

SELECT col1, col2  
FROM Tab1 
INNER JOIN Tab2 ON Tab1ID =  Tab2ID

这会在您使用动态查询时发出,您可以根据需要运行时间添加列,然后由于错误的数据类型不匹配而执行哪些可能会或可能不会出错。 喜欢

declare @sqlstring nvarchar(max)

set @sqlstring = 'declare @t table (name varchar(50))
insert into @t values(''Minh''),(''Tinh''),(''Justin'')

Select * from @t where Name like ''%in%'''

EXEC sp_executesql @sqlstring

答案 1 :(得分:0)

之前我遇到过类似的问题,但我必须逐个创建每个查询的表(70+)。

  • 如果有模式,请编写工具以生成创建表 声明。
  • 如果没有,这是一次性工作,只需手动创建。
  • 如果不是一次性工作,你可能会想,为什么会存储临时工 表中的日期而不是临时表。