Sql server 将INSERT语句链接到另一个语句中非键列的值

Sql server 将INSERT语句链接到另一个语句中非键列的值,sql-server,coldfusion,Sql Server,Coldfusion,我有一个包含以下表的数据库: 我正在将值ProjName、Description和FileStorage插入表项目中。我试图将此信息链接到表Users,其中我只拥有非键列AUID的值。到目前为止,我有这样的想法: INSERT INTO Project (ProjName, Description, FileStorage) VALUES ( '#form.capstoneName#' ,'#form.capstoneDescription#' , <cfquerypa

我有一个包含以下表的数据库:

我正在将值ProjName、Description和FileStorage插入表项目中。我试图将此信息链接到表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列相关

如果项目ID是一个标识列,请将与INSERT查询一起使用以获取新生成的项目ID。然后使用INSERT/SELECT查找相应的用户ID,并将这两个值插入到Project_Users表中。根据需要修改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}">
注意:请确保将两个INSERT都包装在一个中,以确保两个查询都是

请参见结果属性的其他示例:


我要试试这个。大喊,谢谢你帮助我理解了很多,欢迎你。有一件事我忘了提到,确保在cftransaction中包装两个INSERT。这样可以确保在某个插入由于某种原因失败时,不会出现不一致的数据。