前の10件 | -
INSTEAD OF トリガ(SQL Server) [SQL]
INSTEAD OF トリガ(SQL Server)
INSTEAD OF トリガを使用する主な利点は、更新可能ではなかったビューを更新できるようになること。
複数のベース テーブルに基づいたビューでは、INSTEAD OF トリガを使用して、複数のテーブルの
データを参照する挿入、更新、および削除の各操作をサポートする必要がある。
INSTEAD OF トリガのもう 1 つの利点は、バッチの一部を拒否しながらバッチのその他の部分を正常に実行できる
ロジックをコード化できること。
INSTEAD OF トリガを使用すると、次のような操作を実行できる。
* バッチの一部を無視する。
* バッチの一部の処理および問題のある行のログ記録を実行しない。
* エラー状態が検出された場合、代替操作を実行する。
INSTEAD OF トリガを使用する主な利点は、更新可能ではなかったビューを更新できるようになること。
複数のベース テーブルに基づいたビューでは、INSTEAD OF トリガを使用して、複数のテーブルの
データを参照する挿入、更新、および削除の各操作をサポートする必要がある。
INSTEAD OF トリガのもう 1 つの利点は、バッチの一部を拒否しながらバッチのその他の部分を正常に実行できる
ロジックをコード化できること。
INSTEAD OF トリガを使用すると、次のような操作を実行できる。
* バッチの一部を無視する。
* バッチの一部の処理および問題のある行のログ記録を実行しない。
* エラー状態が検出された場合、代替操作を実行する。
SET IDENTITY_INSERT(SQL Server) [SQL]
SET IDENTITY_INSERT(SQL Server)
通常、IDENTITY列はID値を明示的に追加できないが
SET IDENTITY_INSERTをONにすると追加できるようになる。
IDENTITY_INSERTをONにできるのは、セッション内の
一つのテーブルのみなので、追加をしたらOFFにするのを忘れない事。
(例)
SET IDENTITY_INSERT TEST ON
通常、IDENTITY列はID値を明示的に追加できないが
SET IDENTITY_INSERTをONにすると追加できるようになる。
IDENTITY_INSERTをONにできるのは、セッション内の
一つのテーブルのみなので、追加をしたらOFFにするのを忘れない事。
(例)
SET IDENTITY_INSERT TEST ON
sp_helpdb(SQL Server) [SQL]
sp_helpdb(SQL Server)
指定されたデータベース、または全てのデータベースに
関する情報を返す。
指定されたデータベース、または全てのデータベースに
関する情報を返す。
データベースファイル(SQL Server) [SQL]
データベースファイル(SQL Server)
SQL Server2005のデータベースには3種類のファイルがある。
・プライマリデータファイル
プライマリデータファイルはデータベースの開始点であり
データベースの内の他のファイルを指し示す。
各データベースには1つのプライマリデータファイルがある。
プライマリデータファイルに推奨されるファイル名拡張子は.mdf
・セカンダリデータファイル
セカンダリデータファイルはプライマリデータファイル以外の
すべてのデータファイルで構成される。データベースによっては
セカンダリデータファイルがない場合と、複数のセカンダリデータファイルが
ある。セカンダリファイルに推奨されるファイル名拡張子は.ndf
・ログファイル
ログファイルはデータベースの復旧に使用する全てのログ情報が格納される。
1つのデータベースには最低、1つのログファイルが必要で複数あっても大丈夫。
ログファイルに推奨されるファイル名拡張子は.ldf
SQL Server2005のデータベースには3種類のファイルがある。
・プライマリデータファイル
プライマリデータファイルはデータベースの開始点であり
データベースの内の他のファイルを指し示す。
各データベースには1つのプライマリデータファイルがある。
プライマリデータファイルに推奨されるファイル名拡張子は.mdf
・セカンダリデータファイル
セカンダリデータファイルはプライマリデータファイル以外の
すべてのデータファイルで構成される。データベースによっては
セカンダリデータファイルがない場合と、複数のセカンダリデータファイルが
ある。セカンダリファイルに推奨されるファイル名拡張子は.ndf
・ログファイル
ログファイルはデータベースの復旧に使用する全てのログ情報が格納される。
1つのデータベースには最低、1つのログファイルが必要で複数あっても大丈夫。
ログファイルに推奨されるファイル名拡張子は.ldf
SET ARITHABORT(SQL Server) [SQL]
SET ARITHABORT
SET ARITHABORT{ON | OFF}
クエリ実行中にオーバーフローまたは、0除算のエラーが
発生した場合に、クエリを終了する。
SET ARITHABORTをONにし、SET ANSI_WARNININGSもONにした場合、このエラー状態が
発生するとクエリが終了する。SET ARITHABORTをONにし、SET ANSI_WARNINGSをOFFに
した場合、エラー状態が発生するとバッチが終了する。エラーがトランザクション内で
発生した場合、トランザクションはロールバックされる。SET ARITHABORTがOFFの場合に
エラーが発生すると、警告が表示され算術演算の結果には、NULLが割り当てられる。
(例)
SET ANSI_WARNINGS OFF
SET ARITHABORT ON
SELECT * FROM T1
--結果
-- A B
--1 1 0
--2 255 1
SELECT A/B AS AB FROM T1
--結果は何も表示されない
SET ARITHABORT OFF
SELECT A/B AS AB FROM T1
--結果
-- AB
--1 NULL
--2 255
SET ARITHABORT{ON | OFF}
クエリ実行中にオーバーフローまたは、0除算のエラーが
発生した場合に、クエリを終了する。
SET ARITHABORTをONにし、SET ANSI_WARNININGSもONにした場合、このエラー状態が
発生するとクエリが終了する。SET ARITHABORTをONにし、SET ANSI_WARNINGSをOFFに
した場合、エラー状態が発生するとバッチが終了する。エラーがトランザクション内で
発生した場合、トランザクションはロールバックされる。SET ARITHABORTがOFFの場合に
エラーが発生すると、警告が表示され算術演算の結果には、NULLが割り当てられる。
(例)
SET ANSI_WARNINGS OFF
SET ARITHABORT ON
SELECT * FROM T1
--結果
-- A B
--1 1 0
--2 255 1
SELECT A/B AS AB FROM T1
--結果は何も表示されない
SET ARITHABORT OFF
SELECT A/B AS AB FROM T1
--結果
-- AB
--1 NULL
--2 255
タグ:SQL
SET QUOTED_IDENTIFIER (SQL Server) [SQL]
SET QUOTED_IDENTIFIER (SQL Server)
SET QUOTED_IDENTIFIER{ON | OFF}
SET QUOTED_IDENTIFIER ON の場合、識別子を二重引用符で区切る事が出来る。
リテラルは単一引用符で区切る必要がある。
SET QUOTED_IDENTIFIER ONの場合、二重引用符で区切られた文字列は、全て
オブジェクト識別子として解釈されるので予約済みキーワードを使用できる。
それに対してOFFの場合、識別子は規則に従わなければならないが
リテラル文字は単一・二重引用符のどちらで区切ってもよい。
(例)
SET QUOTED_IDENTIFIER ON
GO
--成功
CREATE TABLE "SELECT"
(
"identity" int IDENTITY
"ORDER" int
)
GO
DROP TABLE "SELECT"
GO
SET QUOTED_IDENTIFIER OFF
GO
--失敗
CREATE TABLE "SELECT"
(
"identity" int IDENTITY
"ORDER" int
)
SET QUOTED_IDENTIFIER{ON | OFF}
SET QUOTED_IDENTIFIER ON の場合、識別子を二重引用符で区切る事が出来る。
リテラルは単一引用符で区切る必要がある。
SET QUOTED_IDENTIFIER ONの場合、二重引用符で区切られた文字列は、全て
オブジェクト識別子として解釈されるので予約済みキーワードを使用できる。
それに対してOFFの場合、識別子は規則に従わなければならないが
リテラル文字は単一・二重引用符のどちらで区切ってもよい。
(例)
SET QUOTED_IDENTIFIER ON
GO
--成功
CREATE TABLE "SELECT"
(
"identity" int IDENTITY
"ORDER" int
)
GO
DROP TABLE "SELECT"
GO
SET QUOTED_IDENTIFIER OFF
GO
--失敗
CREATE TABLE "SELECT"
(
"identity" int IDENTITY
"ORDER" int
)
TDS(表形式データストリーム)(SQL Server)
TDS(表形式データストリーム)(SQL Server)
SQL Serverデータベースエンジンはアプリケーションと通信する際、通信を
表形式データストリームと呼ばれるMicrosoftの通信形式にフォーマットしている
SQL Serverデータベースエンジンはアプリケーションと通信する際、通信を
表形式データストリームと呼ばれるMicrosoftの通信形式にフォーマットしている
DONE_IN_PROCメッセージ(SQL Server) [SQL]
DONE_IN_PROCメッセージ(SQL Server)
ストアドプロシージャに複数のステートメントがある場合、SQL Serverは既定で
各ステートメントの完了時にクライアントアプリケーションにメッセージを送り
ステートメントが処理された行数を知らせている。
これをTDS用語でDONE_IN_PROCメッセージと呼んでいる。
DONE_IN_PROCメッセージを必要としているアプリケーションはあまりない
ストアドプロシージャに複数のステートメントがある場合、SQL Serverは既定で
各ステートメントの完了時にクライアントアプリケーションにメッセージを送り
ステートメントが処理された行数を知らせている。
これをTDS用語でDONE_IN_PROCメッセージと呼んでいる。
DONE_IN_PROCメッセージを必要としているアプリケーションはあまりない
SET NOCOUNT [SQL]
SET NOCOUNT(SQL Server)
SET NOCOUNT{ON | OFF}
ストアドプロシージャなどで処理された行数を示す
メッセージが結果セットの一部として返されないようにする。
SET NOCOUNTをONにするとDONE_IN_PROCメッセージはクライアントに送信されなくなる。
この為、実際に返すデータが少量のステートメントなどは、ネットワーク通信量が
大きく減少するのでパフォーマンスが大きく向上する。
ADPでコントロールソースがうまく反映されない時
ADPでストアドプロシージャをレコードソースにして、フォーム・レポートを
作成した時にコントロールソースの一覧にうまく反映されない場合。
ストアドプロシージャに以下の部分を追加する。
CREATE PROCEDURE usp_TEST
@P_PARA AS varchar(5)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GOTO SKIP
SELECT
'DUMMY' AS FIELD1
'DUMMY' AS FIELD2
SKIP:
GOTO SKIP とSKIP:の間のSELECT句に画面やレポートで
使用したいフィールドを追加する事。
タグ:access
前の10件 | -