在SQL Server 2008 R2中创建用户定义的表类型时出错

在SQL Server 2008 R2中创建用户定义的表类型时出错,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在尝试在SQL Server 2008 R2版本中创建用户定义的表类型,但无法创建 使用以下查询 create type <table_type_name> as table ( UserId int, FirstName varchar(50) ) 创建类型为表 ( UserId int, 名字varchar(50) ) 它显示错误消息“157,关键字AS附近的语法不正确。” 另外,我想提一件事,在SQL Server的文件夹层次结构中,在Programmability->

我正在尝试在SQL Server 2008 R2版本中创建用户定义的表类型,但无法创建

使用以下查询

create type <table_type_name> as table
(
UserId int,
FirstName varchar(50)
)
创建类型为表
(
UserId int,
名字varchar(50)
)
它显示错误消息“157,关键字AS附近的语法不正确。”

另外,我想提一件事,在SQL Server的文件夹层次结构中,在Programmability->Types文件夹下,我无法看到“User Defined Table Type”文件夹


有办法解决此问题吗?

您必须在查询中指定用户定义表的名称,例如[TypeName}。如果要使用type作为用户定义表的名称,例如[type],则必须包含方括号

使用以下命令:

create type [TypeName] as table 
(UserId int, 
 FirstName varchar(50))

SQL Server 2008中引入了用户定义的表类型。您可能正在连接版本较低的SQL Server实例。

您的建议是正确的,但OP似乎知道该名称。您看不到这一点,因为他们的代码段未格式化为代码,并且包含处理过的“箭头括号”作为标记分隔符(“标记”因此被隐藏)。“如果要使用类型作为用户定义的表名,则必须包含方括号”--不完全正确:双引号也可以。这是我的答案。如果sql server版本为2005,则使用“选择@@version”,这将不起作用。