SQL Server(具体的には2008または2012)CASEステートメントはすべてのWHEN条件WHENを評価しますか、またはtrueと評価される句を見つけると終了しますか?条件のセット全体を通過する場合、真と評価された最後の条件が真と評価された最初の条件が上書きしたことを意味しますか?例えば: SELECT CASE WHEN 1+1 = 2 THEN'YES' WHEN 1+1 = 3 THEN 'NO' WHEN 1+1 = 2 THEN 'NO' END 最後のwhen条件により「NO」と評価されるはずですが、結果は「YES」です。最初のTRUE条件が見つかると終了するようです。誰かがこれが事実であるかどうか確認してください。
デスクトップにSQL Server Management Studioをインストールして、SQL Server 2012インスタンスのデータベースにアクセスできますか? その場合、インストーラーはどこにありますか?Google検索は「エクスプレス」バージョンのみを返しますが、完全なSQL Server Management Studioを探しています。
概念的な質問:個々のクエリは結合よりも高速ですか、またはクライアント側で必要なすべての情報を1つの SELECTステートメントに絞り込もうとするか、便利だと思われるだけ使用する必要がありますか? TL; DR:結合されたクエリに個々のクエリを実行するよりも時間がかかる場合、これは私のせいですか、これは予想されることですか? まず、データベースに精通していないので、私だけかもしれませんが、複数のテーブルから情報を取得する必要がある場合、個々のテーブルで複数のクエリを使用してこの情報を取得する方が「多くの場合」高速であることに気付きました単純な内部結合を含む)、1つのクエリですべてのデータを取得できる(複雑な)結合クエリを作成しようとするクライアント側でデータをパッチします。 私は非常に単純な例を1つまとめようとしました。 SQLフィドル スキーマのセットアップ: CREATE TABLE MASTER ( ID INT NOT NULL , NAME VARCHAR2(42 CHAR) NOT NULL , CONSTRAINT PK_MASTER PRIMARY KEY (ID) ); CREATE TABLE DATA ( ID INT NOT NULL , MASTER_ID INT NOT NULL , VALUE NUMBER , CONSTRAINT PK_DATA PRIMARY KEY …
ユーザーを作成し、user1に特権を付与しました。 `grant all privileges on db1.* to user1@'%' with grant option; mysqlワークベンチを使用して、データベースにダンプをインポートしています。データベースdb1にダンプをインポートしているときに、次のエラーが発生します ERROR 1227 (42000) at line 49: Access denied; you need (at least one of) the SUPER privilege(s) for this operation そのダンプでは、すべてのテーブルは正常にインポートされますが、データベースへのルーチンのインポート中にエラーが発生します。特権に何か問題がありますか、私はuser1に与えました。ご意見をお聞かせください。
私は現在search_pathを見ることができます: show search_path ; そして、私search_pathは現在のセッションのために設定することができます: set search_path = "$user", public, postgis; 同様に、search_path特定のデータベースのを次のように永続的に設定できます。 alter database mydb set search_path = "$user", public, postgis ; そして、私はsearch_path特定の役割(ユーザー)に永久的に設定することができます: alter role johnny set search_path = "$user", public, postgis ; しかし、それらを変更する前に、データベースとロールの設定が(に関してsearch_path)であるかどうかを判断する方法を知りたいですか?