将INSERT语句链接到另一个

时间:2017-01-26 00:02:38

标签: sql-server coldfusion

我有一个包含这些表的数据库:

Table Relationships

我将值ProjName,Description和FileStorage插入到表Project中。我试图将此信息链接到表Users,其中我只拥有非键列AUID的值。到目前为止,我有这样的事情:

INSERT INTO Project (ProjName, Description, FileStorage)
VALUES 
(
   '#form.capstoneName#'
   ,'#form.capstoneDescription#'
   , <cfqueryparam cfsqltype="cf_sql_blob" value="#FileReadBinary(FORM.capstoneFile)#"> 
)

但是,我希望这个特定的INSERT语句通过我为登录用户存储的值AUID与Users表的ID列相关。

1 个答案:

答案 0 :(得分:1)

如果Project ID是标识列,请使用带有INSERT查询的cfquery result attribute来获取新生成的Project ID。然后使用INSERT / SELECT查找相应的用户ID并将这两个值插入Project_Users表。根据需要修改cfqueryparam cfsqltypes。

  <!--- Inserts one record for EACH matching AUID value --->
  INSERT INTO Project_Users ( ProjectID, UserID )
  SELECT <cfqueryparam value="#resultName.generatedKey#" cfsqltype="cf_sql_integer">
        , ID
  FROM   Users
  WHERE  AUID = <cfqueryparam value="{The_AUID_Value}" cfsqltype="{Update_With_Your_Type}">

NB:请务必将{INS引用} cftransaction包裹起来,以确保两个查询succeed or fail as a single unit

请参阅“结果”属性的其他示例: