我有一个查询,我试图将值插入表中,其中一个值(ImportID)是数据库中的 uniqueidentifier 类型。我查看了 adobe CF 文档,发现 cf_sql_char 和 cf_sql_idstamp 都应该适用于我的 uniqueidentifier 类型的 cfquery 参数。我还阅读了这个线程,它说了同样的话:什么是最适合用于 MS SQL 的 uniqueidentifier 字段类型的 Coldfusion cfsqltype?
我发现其他一些地方使用 cfqueryparam 标记的“maxlength”参数和 cf_sql_char 作为类型,但无法使我的代码工作。我不断收到“从字符串转换为唯一标识符时转换失败”的错误。我将我的代码包含在我生成 UID 的位置并尝试在下面插入(我替换了一些变量名称并取出了所有其他列以进行导入):
<cfscript>
ImportID = createUUID();
</cfscript>
<cfquery name="INSERTTableName" datasource="#Application.Datasource#">
INSERT INTO TableNameImport(
ImportID
)
VALUES(
<cfqueryparam value="#variables.ImportID#" cfsqltype="CF_SQL_CHAR">
)
</cfquery>
任何帮助将不胜感激。提前致谢。
*********************************编辑**************** ******************
找到了答案:
<cfquery name="INSERTTableName" datasource="#Application.Datasource#">
DECLARE @ImportID uniqueidentifier
SET @ImportID = NEWID()
INSERT INTO TableNameImport(
ImportID
)
VALUES(
@ImportID
)
</cfquery>
问题是从 Coldfusion 调用创建的 UUID 与在 Microsoft SQL Server 中创建的格式不同。