如何从用户定义的表类型中进行选择?

时间:2015-10-02 09:50:33

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

Select * from sys.table_types where user_type_id = TYPE_ID(N'dbo.udt_test');

以上查询会返回数据,但当我尝试查询其中的数据时,它表示dbo.udt_test不存在?

Select * from dbo.udt_test

https://msdn.microsoft.com/en-us/library/ms131086.aspx

参考上面的链接,select查询显示数据应该没有问题。如果我在这里遗漏了一些明显的东西,我可以知道吗?

1 个答案:

答案 0 :(得分:2)

因为dbo.udt_test 是表格类型,而不是物理表格

在问题中提到的链接中,定义了user defined type,并将其用作列的数据类型。

你似乎已经创建了一个新的表类型。

您可以创建dbo.udt_test类型的表变量,并使用该表插入/更新/删除/从中选择数据。

在链接中,您有此代码..

INSERT INTO dbo.Points (PointValue) VALUES (CONVERT(Point, '3,4'));

'Point'在这里输入。你不能说select Point from SometableSelect VARCHAR from Sometable

的情况相同

以同样的方式,你不能说SELECT * FROM TABLETYPE