请告诉我如何使用 sql 查询将另一个类似表中的数据插入到一个不在第一个表中的表中。
在下面的查询中,除 INSERT 外,一切正常。请告诉我,INSERT 查询应该是什么,以便在其执行后,@t1 表中出现 3 行,其值为“ms”、“sec”和“min”?
CREATE TYPE dbo.type1 AS TABLE
(
Id BIGINT IDENTITY,
TypeId BIGINT NOT NULL
,[Order] INT NOT NULL
,Val NVARCHAR(64) NOT NULL
PRIMARY KEY CLUSTERED (Id)
WITH (IGNORE_DUP_KEY = OFF)
)
CREATE TYPE dbo.type2 AS TABLE
(
TypeId BIGINT NOT NULL
,[Order] INT NOT NULL
,Val NVARCHAR(64) NOT NULL
)
DECLARE @t1 dbo.type1;
INSERT INTO @t1 (TypeId, [Order], Val)
VALUES (9, 1, 'ms'), (9, 2, 'sec');
DECLARE @t2 dbo.type2;
INSERT INTO @t2 (TypeId, [Order], Val)
VALUES (9, 2, 'sec'), (9, 3, 'min');
SELECT * FROM @t1;
SELECT * FROM @t2;
/*?????????*/
INSERT INTO @t1 SELECT * FROM @t2 WHERE @t1.TypeId != @t2.TypeId OR @t1.[Order] != @t2.[Order] OR @t1.Val != @t2.Val;
SELECT * FROM @t1;
如果您需要其他列