ユーザー定義のデータ型を使用するテーブルを偽造しようとすると、次のエラーが発生しました。
COLLATE 句は、ユーザー定義のデータ型では使用できません。{,1}
tSQLt の既知の問題のようです。
https://groups.google.com/forum/?fromgroups#!topic/tsqlt/AS-Eqy6BjlA
テーブル定義を変更する以外に回避策はありますか? ありがとう。
ユーザー定義のデータ型を使用するテーブルを偽造しようとすると、次のエラーが発生しました。
COLLATE 句は、ユーザー定義のデータ型では使用できません。{,1}
tSQLt の既知の問題のようです。
https://groups.google.com/forum/?fromgroups#!topic/tsqlt/AS-Eqy6BjlA
テーブル定義を変更する以外に回避策はありますか? ありがとう。
Chris Francisco のおかげで、パッチがあります:
参考までに、私は同じ問題に遭遇し、tSQLt コードを少し掘り下げることで回避できました。Private_GetFullTypeName という名前の関数があります
関数によって返される最後の列は「Collation」という名前で、変数 @CollationName が null の場合、空の文字列 '' を返します。空の文字列の条件に「OR is_user_defined = 1」を追加すると、ユーザー定義のデータ型でテーブルを偽造することができました。
この変更による奇妙な副作用に遭遇したことはありませんが、tSQLt の内部動作 (または一般的な tSQLt) の専門家ではないため、他の場所で機能が損なわれる可能性があります。
言い換えると:
CASE WHEN @CollationName IS NULL OR is_user_defined = 1 THEN ''
ELSE ' COLLATE ' + @CollationName