如何在 SQL Server 中连接类型表? [复制]
Posted
技术标签:
【中文标题】如何在 SQL Server 中连接类型表? [复制]【英文标题】:How to join type tables in SQL Server? [duplicate] 【发布时间】:2015-07-31 08:33:00 【问题描述】:例如,假设我有以下两种类型:
CREATE TYPE TBL1 AS TABLE
( id int,
name varchar(max),
status_id int )
GO
CREATE TYPE TBL2 AS TABLE
(
id int,
status varchar(max)
)
GO
这些与以下 SQL 一起使用
DECLARE @T1 AS TBL1
INSERT INTO @T1 (id, name, status_id)
VALUES (1, 'Test1', 1),
(2, 'Test2', 2)
DECLARE @T2 AS TBL2
INSERT INTO @T2 (id, status)
VALUES (1, 'New'),
(2, 'Old')
现在,如果我想在查询中使用这些类型,则会收到错误消息:
SELECT *
FROM @T1
INNER JOIN @T2 ON @T1.status_id = @T2.id
错误是
必须声明标量变量'@T1'
这很奇怪,因为我将变量定义为一种类型。
【问题讨论】:
【参考方案1】:看来你只能在FROM
子句中使用变量@T1
和@T2
。如果你给它一个alias
,你可以在任何其他子句中使用它的列。
例如,以下查询将起作用:
SELECT *
FROM @T1 as t1
INNER JOIN @T2 as t2 ON t1.status_id = t2.id
【讨论】:
是的,关键是这里的别名以上是关于如何在 SQL Server 中连接类型表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在sql server中把数据库中的日期字段转换为短日期格式
ASP.NET + SQL SERVER + JSON = 如何在 SQL Server 的两个连接表中获取数据并加载为 JSON?