テーブルに値を挿入しようとしているクエリがあり、これらの値の 1 つ (ImportID) は、データベース内のタイプが uniqueidentifier です。Adobe CF のドキュメントを調べたところ、cf_sql_char と cf_sql_idstamp の両方が、uniqueidentifier 型の cfquery パラメータで機能するはずであることがわかりました。同じことを言っているこのスレッドも読みました: MS SQL の uniqueidentifier フィールド タイプに使用する最も適切な Coldfusion cfsqltype は何ですか?
cfqueryparam タグに「maxlength」パラメータを使用し、タイプとして cf_sql_char を使用している場所をいくつか見つけましたが、コードを機能させることができませんでした。「文字列からuniqueidentifierへの変換中に変換に失敗しました」という行に沿ってエラーが発生し続けます。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 で作成されたものとは異なる形式であることでした。