0
列に一意の識別子が含まれているかどうかを確認して、空であるかどうかを確認する必要があります。 information_schema.columns
TABLE_NAME =「CTUsersからSQL Server 2012:列がGUIDで、NULLであるかどうかを確認します。
Select @sql = @sql +
'Case
when TRY_CONVERT(uniqueidentifier, '+ Column_Name +') IS NOT NULL and IsNull(Convert(nvarchar(36),i.['+Column_Name+']),0) = IsNull(Convert(nvarchar(36),d.['+Column_Name+']),0)
then ''''
when TRY_CONVERT(uniqueidentifier, '+ Column_Name +') IS NULL and IsNull(i.[' + Column_Name + '],0) = IsNull(d.[' + Column_name + '], 0)
then ''''
else ' + quotename(Column_Name, char(39)) + ' + '',''' + ' end +'
:ここ
IsNull(d.[' + Column_name + '], 0)
はコードです:私はそれが今そのGUIDかどうかを確認doesntのとint型に変換カントやっている方法であるためあなたはNULL
をテストするためにTRY_CONVERTを使用し、中の有効なGUIDできる 'とCOLUMN_NAME <>' ROWGUID」とCOLUMN_NAME <> 'modifieddate'
私はこれがこの問題の周りの3番目の質問だと思うし、いくつかのコンセプトを混乱させているように思えます(つまり、一意の識別子を含む列はどうすれば空になれますか? *何でも)。この行を続行するよりも、達成したいことのサンプルデータ*、*期待される結果*、*明確な説明を提示できますか? –
問題は、一意の識別子の列には1つのセルがNULLであることです。だから、チェックに合格するたびに、それをintに変換しようとすると失敗します。私が達成しようとしているのは、このテーブルで発生した変更を記録することです。 – aggicd
'GUID'をどのように' INT'に変換していますか? – Filburt