なぜDapperサンプルで#(ハッシュ)

c# dapper

質問

私はDapperの "マニュアル"からこのサンプルを読んでいます:

connection.Execute(@"
  set nocount on 
  create table #t(i int) 
  set nocount off 
  insert #t 
  select @a a union all select @b 
  set nocount on 
  drop table #t", new {a=1, b=2 })
   .IsEqualTo(2);

#tは特別な構文ですか?それとも、彼らは私を混乱させるだけですか? :)

受け入れられた回答

はい、 #はTSQLで重要なことを意味します - そのデータベース/スキーマのfooという名前のテーブルは永続的です。 #fooという名前のテーブルは一時テーブルです。そのテーブルはその接続にのみ存在 、接続が閉じられたりリセットされたりすると削除されます。 ##fooという名前のテーブルはグローバルな一時テーブルであり、どこにでも存在しますが、一時的なものです。これは主にデータをバルクシフトするときに使用されます。

ここで#t使用するのは、テーブルがその接続上にのみ存在するようにするためです。テストを簡単に再実行することができます。

また、 @fooという名前のテーブルは、 テーブル変数またはテーブル値パラメータのいずれかであり、そのコマンド/ sprocに対してのみ存在します。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ