0

1つの接続で合計3つのSQLコマンドを実行しています。クエリが実行されると、1つの小さなことを除いてすべてが完全に機能します。最後のコマンドのUNIONSELECTは、最後のステートメントの最後に「TEXT」を付加しません。

        SqlCommand commandtwo = new SqlCommand("SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) + ',' FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID UNION SELECT 'TEXT'", con);
        SqlCommand commandthree = new SqlCommand("SELECT INST = INST + ',' FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID UNION SELECT 'TEXT'", con);

commandtwoは問題なく動作するため、これは非常に奇妙だと思います。また、コマンド3でコンマが機能するために、次のように記述しなければならないのも不思議でした。

= INST + ','

ただの代わりに

 + ','

では、なぜ私はこれらの奇妙な出来事を抱えているのですか?または、私は自分自身を初心者だと思っているので、私が明らかに知らないこのルールは何ですか?SQL Server2008R2を使用しています。ありがとうございます。

4

2 に答える 2

0

データ型はINST何ですか?

CAST(INST AS nvarchar) + ',' うまくいくかもしれません。

于 2012-05-03T08:36:28.400 に答える
0

UNION が機能するはずです。「TEXT」ビットがリストにないことを確認してください。列にインデックスが付けられている場合、INSTおそらく結果を並べ替えているため、最後にない場合があります。

于 2012-05-03T04:09:22.327 に答える