我有桌子的结构:
[Subjects]
:
[Juridical]
:
[Individual]
:
Juridical
和Individual
它是Subjects
课程的儿童课程。所以这意味着表Individual
和Subjects
中的相同行具有相同的id
。
现在我有一张桌子:
[MyTable]
:
我想从这个表中选择数据并将其插入到我的表结构中。但我不知道该怎么做。我尝试使用OUTPUT
:
INSERT INTO [Individual](Name)
OUTPUT false
INTO [Subjects].[Deleted]
SELECT [MyTable].[Name] as Name
FROM [MyTable]
WHERE [MyTable].[type] = 'Indv'
但语法不正确。
答案 0 :(得分:2)
只需使用:
INSERT INTO Individual(Name)
SELECT [MyTable].[Name] as Name
FROM [MyTable]
WHERE [MyTable].[type] = 'Indv'
和
INSERT INTO Subjects(Deleted)
SELECT [MyTable].[Name] as Name
FROM [MyTable]
WHERE [MyTable].[type] = 'Indv'
您无法在两个表中的单个查询中插入,您需要两个单独的查询。因此,我将您的初始查询拆分为两个INSERT语句,以便将记录添加到Individual
和Subjects
表中。
正如@marc_s所说,您必须在SELECT
语句中选择确切的列数,并在列表中插入要插入数据的列数。
除了这两个与语法相关的约束外,您完全可以在SELECT
部分进行任何过滤,或者像在普通SELECT
查询中那样进行任何复杂的逻辑
答案 1 :(得分:1)
您需要使用以下语法:
INSERT INTO [Individual] (Name)
SELECT [MyTable].[Name]
FROM [MyTable]
WHERE [MyTable].[type] = 'Indv'
您应该在INSERT INTO
行中定义要插入的列的列表,然后您必须有一个SELECT
,可以根据需要返回那么多列(并且列类型需要匹配) ,也是)