質問

より輝かしい監督現在のプロジェクトにおける一部の特別な技術を必要とくに格納されvarcharカラム一つのテーブルが必要と比較してuniqueidentifier列しています。

する方法を教えてください。SQLサーバーでのように変換できないから文字列へのuniqueidentifier.

役に立ちましたか?

解決

SQLが文句を言う場合、それはあなたがSQL Serverとは異なるフォーマットを使用、それはあなたがvarchar型としてUNIQUEIDENTIFIERを保存するだけでなく意味キャストすることはできません(例えば。あなたは、「{」と「}」を追加しました)。 SQLは、正しくフォーマットされたときに、UNIQUEIDENTIFIERする文字列をキャストする完全に可能です。

declare @u uniqueidentifier;
declare @s varchar(64);

select @u = NEWID();
select @s = CAST(@u as varchar(64));
select CAST(@s as uniqueidentifier), @u, @s;

あなたはactualy UNIQUEIDENTIFIERの保存方法に応じて、あなたが最も可能性の高いSQLの形式を(なし{})と一致するように、データとあなたのコードtomodifyています。

他のヒント

varchar型にUNIQUEIDENTIFIERを変換します:

CAST( uniqueidentifier_col_name as varchar)

思った以下のテストスクリプト:

DECLARE
  @Foo Uniqueidentifier
 ,@Foo2 varchar(50)

SET @Foo = newid()
SET @Foo2 = newId()

print @Foo
print @Foo2

if @Foo = @Foo2
    print 'Yes'
else
    print 'No'

set @Foo = @Foo2

if @Foo = @Foo2
    print 'Yes'
else
    print 'No'

走るSSMSウィンドウによslqcmd-iファイルに同じ結果--SQL(2005)は暗黙的に変換します。この支援は何を思い起こSQLから2000年にしようと思っていたのと同じような問題。

キーリックするとnhkサイトを離れvarchar文字列と合わせることでパターン:

  • 8桁の六角レンチ
  • ダッシュ
  • 4桁の六角レンチ
  • ダッシュ
  • 4桁の六角レンチ
  • ダッシュ
  • 4桁の六角レンチ
  • ダッシュ
  • 12桁の六角レンチ

あなたはvarchar型に他のuniqueidentifierをキャストする必要があります。

SQL Serverは、おそらくUNIQUEIDENTIFIERに「ボブ」のようなものをキャストするtryngされ、それが失敗します。 それはそう、許可されていますの CAST / CONVERTによると、それはvarchar型の列の値である必要があります。

scroll top