【发布时间】: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'
这很奇怪,因为我将变量定义为一种类型。
【问题讨论】:
标签: sql sql-server tsql