【发布时间】:2019-08-19 06:35:16
【问题描述】:
我有一个表 [named] Application_Form_Controls_Management 我想在其中插入 19 列的值,其中 3 列 (App_Form_Name,App_Form_Function_ID&Right_ID) 我想用同一张表上的select语句。
我要添加到这 3 列的值是:
select App_Form_Name,App_Form_Function_ID,Right_ID
from Application_Form_Controls_Management
where App_Form_Name IN (Select Application_Form_Name From FormNameGridNameTempTable)
group by App_Form_Name,App_Form_Function_ID,Right_ID
此选择语句将返回值(以一对为例):
App_Form_Name | App_Form_Function_ID | Right_ID
formContactNewEdit | 1 | 0
formContactNewEdit | 1 | 1
formContactNewEdit | 2 | 1
P.S:这个问题不是 this question 的重复,因为他的问题是通过在他想要插入的每一列中写一个 select 来解决的,但在我的情况下,这会返回错误的值,因为我想要的列add 是“相关的”,所以如果我这样做意味着我会得到错误的 App_Form_Function_ID&Right_ID 与 App_Form_Name 列关联的值,例如我可能会看到这一行添加到我的表中:
App_Form_Name | App_Function_ID | Right_ID
formContactNewEdit | 3 | 1
当 App_Function_ID 的值 3 和 Right_ID 的值 1 对于“formContactNewEdit”来说是错误的
更新,既然有人告诉我我的问题不清楚,我会尝试用另一种方式问它:
我有一个表 Application_Form_Controls_Management,我想在其中应用 insert into 语句。我的表有 19 列,其中 3 列的值将使用 select 语句插入,其余的手动插入(手动我的意思是我会手写他们的价值观)。
通常是这样的:
Insert Into Application_Form_Controls_Management (column1, App_Form_Name,App_Form_Function_ID,Right_ID,column5, _)
Values('manual value',select statement,select statement,select statement,'the rest are manual values')
但如果我这样做,我会得到错误的值(在 P.S 段落中解释)所以我似乎需要只用一个选择插入这 3 列,但我不知道如何。
【问题讨论】:
-
@JorgeCampos 不,这不是因为在他的问题中,它可以通过在他要插入的每一列中写入
select来解决,但在我的情况下,这 3 列是“相关的”,所以我可以不要为每一列写一个select,因为结果将完全不同,因为它将在列中插入值:App_Form_Function_ID和Right_ID到不应该添加到其中的App_Form_Name。跨度> -
问题不是很清楚。
-
@mkRabbani 我更新了我的问题并以另一种方式提出了问题
标签: sql sql-server sql-server-2012 sql-insert