sql-server - 表中的 SQL ID 将相同的 ID 发布到每个事务的所有其他 Coldfusion 条目

标签 sql-server coldfusion

如何触发交易表中的 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/

相关文章:

sql - 使用短语 SQL Server 查询搜索单词

用于数据库循环轮询的 C# 定时器

mysql - 为什么插入和更新查询名称变量在 ColdFusion 中未定义

eclipse - Eclipse 中的 ColdFusion 调试问题(断点未命中)

sql - 如何从表中获取几个最高值?

sql-server - sys.indexes 中的 index_id=0 是否引用表本身?

java - 如何生成 OpenOffice Draw 文档?

oracle - 将 ColdFusion 数组作为绑定(bind)变量传递到 Oracle 集合

ColdFusion 11 编译 CFC 花费太多时间

c# - 使 SQL Server 表在 Rx 和 C# 中可观察