SQL ServerユーティリティスキルII

1.sp_helptextルールは、デフォルト値、暗号化されていないテキストストアドプロシージャ、ユーザ定義関数、トリガー、またはビューです。

2.SQLフィールドデータのルックアップテーブル

a.nameを選択して表名のsysobjectsから左がどこb.name = '字段名' a.id = b.idにbとSYSCOLUMNSに参加して

1>知られているフィールドのルックアップテーブルによると:

a.id = b.idどこb.name = '字段名' にbをSYSCOLUMNSに参加するにsysobjectsからa.nameを選択

2>コンプライアンスの歴史は、このフィールドの値を照会しました:

ここで、フィールド名=フィールド値テーブルSELECT * FROM(テーブル名、クエリ名のうちの工程です)

3.すべてのユーザ・テーブルの現在のデータベースを取得
XTYPE =「のsysobjectsから名前を選択する U」とステータス> = 0

すべてのデータベースのテーブル名の4リスト
のsysobjectsから名前を選択する場所のタイプ=「 U」

5.内のすべてのフィールドのリストを取得
idは=のobject_idのsyscolumnsから選択名前を (「 テーブル」)

IDで(セレクトタイプ= sysobjectsテーブルからID「U」と名前=「表名」)SYSCOLUMNSから名前を選択

2つの方法で同じ効果

6つのクエリテーブルのフィールドとデータ型は
からinformation_schema.columnsからCOLUMN_NAME、DATA_TYPEを選択
TABLE_NAME =「テーブル」

7.取回表中字段:
宣言@listのVARCHAR(1000)、
@sql NVARCHAR(1000)
のsysobjectsからリスト@ =リスト+ '' + b.name選択し、ここでa.id = b.id B SYSCOLUMNSとa.name = '表A'
(LEN @リスト、(@list)-1)セット@ SQL = '選択'+右+'表Aから'
EXEC(@sql)

ビューのいずれか、ストアドプロシージャに関連付けられた8参照テーブル、関数は
選択。*のsysobjectsから、 Bのsyscommentsここa.id = b.id及び「%などb.text %名テーブル」

現在のデータベース内のすべてのビューをチェック9.

名前を選択するよう视图sysobjectsにどこからXTYPE =「V」

10.すべてのストアドプロシージャの現在のデータベースをチェック
XTYPE =「P」がsysobjectsからストアドプロシージャ名として名前を選択を

11.すべてのユーザが作成したデータベースは、クエリ
ないSID master..sysdatabases D SELECT * FROM (選択SID master..sysloginsから名前= 'SA')で
又は
master..sysdatabasesからDBIDを選択し、名前としてDB_NAME SID < > 0x01の

12.1 = 1,1 = 2 SQL文で使用される場合、使用されるより

"どこ1 = 1" "1 = 2"のすべて、選択されていないすべて選択である
よう:
!@StrWhere = IF ''
始まる
SELECT COUNT(SET @strSQLは= ' 合計ASからの)[' + + @tblName「] WHERE '+ @strWhere
終了

始める
SET @strSQLを=' SELECT COUNT(
の合計AS [ '@tblName + +'] 'から
エンド

私たちは、直接書き込むことができます

エラー!目次の項目が見つかりました。
セット@strSQL = '選択数(* )からの合計として[' + @tblName + ']ここで、1 = 1 安定' + @strWhere

図13は、テーブルAのすべての行を含むがない表CテーブルBに、すべての重複する行を排除し、結果表を導出する
(以外(にtableAから選択) TABLEBから選択)(表Cから選択)を除きます

14.削除重複したレコード
。1)、テーブル名から削除されないIDで(SELECT MAX(ID)グループテーブル名からCOL1、COL2によって、...)
2)は、DISTINCT SELECT テーブル名からのINTO TEMPを
テーブル名から削除します
INSERT INTOテーブル名SELECT
から一時
評価:関与する大量のデータを移動この操作は、このアプローチは、大容量のデータ操作に適してではなく
)3、例えば:インポート外部テーブル内のデータ、何らかの理由で、最初の導入部が、それはあります重複したフィールドを削除するかどうかは、すべてのインポート、これは重複したフィールドの多くが生成されますので、唯一の次回ということ、特定の位置を決定することは困難

ALTER TABLEのテーブル名
-添加一个自增列
COLUMN_B int型のアイデンティティ(1,1)を追加
(ここCOLUMN_Bないでテーブル名から削除
column1の、column2の、...によって、テーブル名のグループから)MAX(COLUMN_Bを選択)
は、alter tableテーブル名ドロップ列のCOLUMN_B

フィールドに基づいてテーブル内の別のテーブルのフィールドを更新する:2つのテーブル間15.SQL

  1. 簡単に、高効率の更新を書きます:

更新TABLE1

設定フィールド1 = table2.field1、

フィールド2 = table2.field2

表2から

どこtable1.id = table2.id

  1. 数、そうでない場合はすべてのレコードということです従来の方法では、親切左が参加書くのと同等の、外部への更新です

更新TABLE1

セットFIELD1 =(表2から選択トップ1 FIELD1ここtable2.id = table1.id)

ここで、(条件)でtable1.id

16.比較例A、Bテーブル等式:
IF(SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))Aから)

(select checksum_agg(binary_checksum(*)) from B)

「に等しい」印刷
他の
プリント「等しくありません」

テーブル、インデックス、ビュー、またはリクエストキュー17に非修飾名を使用して空間情報の定義

幹部は、「テーブル名」をsp_spaceusedを

18.チェックハードディスクのパーティション:
EXEC master..xp_fixeddrives

おすすめ

転載: blog.51cto.com/14630964/2476397