如何触发交易表中的 ID 在每个 session 的每个表的所有条目上都相同?我试图将大量信息插入到许多表中,但试图将所有表通过 TransactionID 链接在一起,并且正在努力了解如何使用第一个条目创建 TransactionID,然后获取该条目并将其用于所有其他表条目。
(这是我用于创建事务的插入。这应该会自动在我的事务表中创建一个 ID,因为 ID 是我在事务表中的主键,IsIdentity 为 yes 且增量为 1)
<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>
然后创建事务表:
编号:1
类型:非租赁
所有者类型:所有者
我正在尝试弄清楚如何保持相同的事务 ID 与我的其他 6 个表的下一个条目一起插入(如果该表存在)
<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
时您可以使用 results 属性根据运行的查询返回信息。该信息的一部分是 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>
关于sql-server - 表中的 SQL ID 将相同的 ID 发布到每个事务的所有其他 Coldfusion 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866864/