SQL 来自 table 的 ID 将相同的 ID 发布到每笔交易的所有其他 coldfusion 条目

SQL ID from table posts same ID to all other coldfusion entries per transaction

如何触发我的交易 table 中的 ID 在每个会话的每个 table 的所有条目上都相同?我正在尝试向许多 tables 插入大量信息,但试图通过 TransactionID 将所有 tables 链接在一起,并且正在努力研究如何使用第一个条目创建 TransactionID 然后获取该条目并在所有其他 table 条目上使用它。

(这是我创建交易的插入。这应该会在我的交易中自动创建一个 ID table 因为 ID 是我在交易中的主键 table 并且 IsIdentity 是 yes 并且递增一)

<cfquery datasource="Titlesbymail" name="InsertEntry">
 INSERT INTO dbo.Transaction (Type, OwnerType)
 VALUES (
    <cfqueryparam value='NonLeased' cfsqltype='cf_sql_varchar' />
   , <cfqueryparam value='Owner' cfsqltype='cf_sql_varchar' />
 )
</cfquery>

然后创建交易 table:
编号:1
类型:非租赁
所有者类型:所有者

我想弄清楚如何将相同的事务 ID 与我的下一个条目一起插入到我的其他 6 个表中(如果 table 存在)

<cfquery datasource="Titlesbymail" name="CustomerInsertEntry">
 INSERT INTO dbo.Customer (TransactionID, ID, FirstName, LastName)
 VALUES (
    <cfqueryparam value= **'(ID from Transaction Table)'** cfsqltype='cf_sql_int' />
   , <cfqueryparam value='1' cfsqltype='cf_sql_int' />
   , <cfqueryparam value='#session.checkout.info.firstname_1#' cfsqltype='cf_sql_varchar' />
   , <cfqueryparam value='#session.checkout.info.lastname_1#' cfsqltype='cf_sql_varchar' />
 )
</cfquery>

这对我来说是全新的并且做了很多研究我只是不断遇到 sql 触发器命令,但不知道它如何适用于我这样的 coldfusion 设置。

使用 cfquery 时,您可以根据 运行 的查询将结果属性用于 return 信息。此信息的一部分是 GENERATEDKEY。 然后,您可以将此 GENERATEDKEY 分配给一个变量,稍后在您的代码中使用它。

因此,首先您需要将结果属性添加到您的第一个 cfquery

<cfquery datasource="Titlesbymail" name="InsertEntry" result="transactionResult">
 INSERT INTO dbo.Transaction (Type, OwnerType)
 VALUES (
    <cfqueryparam value='NonLeased' cfsqltype='cf_sql_varchar' />
   , <cfqueryparam value='Owner' cfsqltype='cf_sql_varchar' />
 )
</cfquery>

然后分配一个变量使用结果中的GENERATEDKEY(或者直接使用结果变量)

<cfset theID = transactionResult.GENERATEDKEY>

然后您可以在代码中的任何其他地方使用此变量。

<cfquery datasource="Titlesbymail" name="CustomerInsertEntry">
 INSERT INTO dbo.Customer (TransactionID, ID, FirstName, LastName)
 VALUES (
    <cfqueryparam value='#theID#' cfsqltype='cf_sql_integer' />
   , <cfqueryparam value='1' cfsqltype='cf_sql_integer' />
   , <cfqueryparam value='#session.checkout.info.firstname_1#' cfsqltype='cf_sql_varchar' />
   , <cfqueryparam value='#session.checkout.info.lastname_1#' cfsqltype='cf_sql_varchar' />
 )
</cfquery>