まず、基本的な
1、説明:データベースを作成します。
DATABASEデータベース名をCREATE
2、説明:データベースを削除
ドロップデータベースデータベース名
3、説明:バックアップのSQL Server
- バックアップデータデバイスを作成します。
USEマスター
EXEC sp_addumpdevice 'ディスク'、 'testBack'、 'C:\ mssql7backup \ MyNwind_1.dat'
- スタートバックアップ
BACKUP DATABASEパブTO testBack
4、説明:新しいテーブルを作成します
create table 表名 (列名 数据类型 primary key(设置主键)
列名 数据类型
列名 数据类型 not null(不能设置空值))
既存のテーブルに基づいて新しいテーブルを作成します。
A:(新しいテーブルを作成するために、古いテーブルを使用して)tab_oldのようなテーブルtab_newを作成します
B:tab_old定義のみから選択COL1、COL2 ...として作成テーブルtab_new
5、解説:新しいテーブルを削除します。
ドロップテーブルtabnameの
6.説明:列を追加します。
アルターテーブルtabnameの追加列COLタイプ
注:列は上昇後に削除することはできません。列データ・タイプは変更できないDB2を添加した後、唯一の変更は、VARCHARタイプの長さを増加させることです。
7、説明:主キーを追加:アルターテーブルtabnameの主キー(COL)を追加
説明:アルターテーブルtabnameのドロップ主キー(COL):主キーを削除します
8、説明:作成したインデックス:作成[ユニーク] TABNAMEのインデックスidxname(COL ...)
削除インデックス:ドロップインデックスidxname
注:インデックスが変更されていない、変更するには、再ビルドに削除する必要があります。
9、説明:select文などのビュービュー名を作成します。ビューを作成します。
削除ビュー:ドロップビュービュー名
10、説明:いくつかの簡単な基本的なSQL文
選択:選択* TABLE1範囲から
插入:TABLE1への挿入(FIELD1、FIELD2)値(値1、値2)
削除:TABLE1から削除どこの範囲
アップデート:更新TABLE1セットフィールド1 = VALUE1範囲
検索:「%VALUE1%」のようなフィールド1の様な構文情報を見つけるために、非常に微妙ですTABLE1から*を選択!
排序:フィールド1でTABLE1の順序から*を選択し、フィールド2 [DESC]
总数:TABLE1からのトータルカウントとして選択数
求和:TABLE1からsumvalueとして選択合計(フィールド1)
平均:TABLE1からavgvalue AS SELECT AVG(FIELD1)
最大:TABLE1からMAXVALUEとして選択MAX(フィールド1)
最小:TABLE1からMINVALUE AS SELECT分(FIELD1)
11、説明:いくつかの高レベルの問合せターム動作
A:UNION演算子
UNION演算子は、他の2つのテーブル(例えばTABLE1とTABLE2)の結果を組み合わせることにより、結果表を導出し、任意の重複する行を排除します。ALL UNION(すなわちUNION ALL)と組み合わせて使用される場合、重複する行を排除しません。両方の場合において、誘導されたテーブルの各行はTABLE2からTABLE1からのものではありません。
B:演算子EXCEPT
すべての重複行の除去にTABLE2 TABLE1内のすべての行を含めることではなく、オペレータのEXCEPTおよび結果表を導き出します。ALLと併用した場合(ALLを除き)を除く、重複する行を排除しません。
C:INTERSECT演算子
のみTABLE1とTABLE2両方の行を含めて、すべての重複する行を排除することにより、INTERSECT演算子は、結果表を導出します。ALL INTERSECT(INTERSECT ALL)と組み合わせて使用される場合、重複する行を排除しません。
注:使用いくつかのクエリ結果のワード線の動作は同じでなければなりません。
12、説明:使用して外部結合
A、左側(外側)に参加:
左外側(左結合)に参加:結果セットは接続テーブルの一致する行が含まれ、すべての行が左接続テーブルを含みます。
SQL:選択AA、AB、AC、BC、BD、LEFT OUTからbfはAA上には、BのJOIN = BC
B:右側(外側)に参加:
右外側(右リンク)参加:結果セットには、相手側コネクタ接続テーブル行の両方を含む、すべての行は右接続テーブルを含みます。
C:フル/クロス(外側)に参加:
完全外部結合:さらに、テーブル内のすべてのレコードを結ぶ2を備え、シンボリックリンクテーブルの行と一致していないだけ。
12、グループ:グループによる:
グループが完了すると、テーブルには、お問い合わせは、グループのみに関連する情報を得ることができます。
グループの統計情報)のカウント、合計、最大、最小、標準規格関連の情報パケット:(平均)
パケットのSQLServerは、時:グループのテキスト、ntext型、イメージタイプのフィールドにすることはできません
selecte統計フィールドの関数はなく、通常のフィールドで一緒。
13、データベース操作:
データベースをデタッチ:sp_detach_db;追加のデータベース:ショーの後、その後sp_attach_db、完全に必要な追加のパス名
14.どのようにデータベースの名前を変更します:
sp_renamedb 'OLD_NAME'、 'NEW_NAME'
第二に、強化します
1、説明:テーブルのコピー(複製されただけの構造、ソーステーブル名:新しいテーブル名:b)は(アクセス可能)
方法:1 <> 1(唯一のSQLServerのための)からBへの選択*
法二:AからBへの選択トップ0 *
2、説明:コピーテーブル(データソーステーブル名コピー:対象テーブル名:B)を(アクセス入手可能)
B(A、B、C)を選択し、D、E、BからFに挿入します。
3、説明:(絶対パスを使用して、特定のデータ)は、クロスデータベーステーブル間のコピー(アクセス入手可能)
B(A、B、C)を選択し、D、E、 '特定のデータベース' 中のBからFの条件に挿入
例子:...でB ' "Server.MapPathの&("。 ")&" \ data.mdb "&"' どこから...
4、説明:サブクエリ(表1:表名2:B)
IN(Bから選択D)は或者ここから、B、Cを選択しますから、B、Cを選択する場合IN(1,2,3)
5、解説:記事、著者、最終的な応答時間を表示します
表Aからa.title、a.username、b.adddateを選択し、B(table.title = a.titleテーブルからMAX(adddate)adddateを選択)
6、説明:外部結合照会(表1:表名2:B)
選択AA、AB、AC、BC、BD、LEFT OUTからbfはAA上には、BのJOIN = BC
7、概要:オンラインビューのクエリ(テーブル名1:A)
*選択してから1> TA T(FROM A、B、Cを選択します)。
8、説明:限界との間の境界値クエリデータの範囲を含む、使用の間に、間に含まれていません
時刻1とTIME2間TABLE1の時間から選択*
ない間数值1及び数值2 TABLE1から、A、B、Cを選択します
9、説明:使用中
TABLE1 SELECT * FROMここで、[しない]( '値1'、 '値2'、4 '値'、 '値6')で
図10は、説明:2つの関連テーブルが、メインテーブルを削除するには、サイドテーブルの情報を有していません
存在していないTABLE1から削除(table2のtable1.field1 = table2.field1から選択*)
11、説明:四つのテーブル合同調査の質問:
AA上のCへの参加左内側はAA = BBにBを参加から右内側選択* = ccの内部がAAにDに参加=ここで、ddは...
12、説明:5分前倒しリマインダの
SQL:スケジュールからDATEDIFF( '分'、F開始時刻、GETDATE())> *を選択5
13、説明:データベースのSQL文ケリページ
トップ10 Bを選択します。*(ソートフィールドDESCによってテーブルの順序から選択トップ20の主キーフィールド、ソートフィールド)、テーブルBからB。主キーフィールド=。ソートフィールドによりプライマリキーフィールド順序
特定の実装:
データベースページについて:
エンドINT @、@start int型を宣言
@sql NVARCHAR(600)
セット@ SQL = '選択トップ' + + STR(@ STR-1)+なくすTから「取り除く '(選択上部にない取り除くTから+' STR(@エンド@ 1 +スタート)+> -1 「)
幹部sp_executesqlを@sql
注:あなたは変数にすることはできませんので、直接トップ後の実用的なアプリケーションでは、特別な治療の唯一の方法。ridは、特定のトップ・フィールドがある場合、これは非常に良いですが、ID列です。矛盾を避けるためにトップフィールドの論理インデックスであれば、実際のテーブルでクエリ結果(データ・テーブル内の論理インデックスと矛盾可能でデータ、一方、最初のクエリのインデックス、クエリインデックス場合)
14、説明:最初の10行
トップ10 *フォームtable1を選択する場所の範囲
15、説明:月額使用缶リストについては、このフォーラムのように(各群において同一b値のデータに対応する全ての情報を記録最大を選択し、毎月の販売製品の分析、性能が被験者によってランキング、以下のように。)
(tb.b = ta.bテーブル名のTBから選択MAX())ここで、TA =テーブル名から、B、Cを選択します
16、説明:TableAのTableBの表Cの列に含めたすべてではないとは、すべての重複行を削除し、結果表を導き出します
(TABLEBから選択)(表Cから選択)を除く以外は(にtableAから選択)
17、説明:10件のランダムなデータを削除します
NEWID(でテーブル名順から上位10 *を選択)
18、説明:ランダムに選択されたレコード
変更を選択します()
19、説明:削除重複レコード
1)、COL1でテーブル名のグループからどこIDません(MAX(IDを選択)でテーブル名から削除し、COL2、...)
2)、テーブル名から一時に異なる*を選択
テーブル名から削除
一時SELECT * FROMテーブル名に挿入
評価:関与大量のデータを移動するこの操作は、このアプローチは、大容量のデータ操作には適していませんが、
3)、例えば:外部表のインポートデータ、何らかの理由で、最初の導入部分は、どのように除去するので、それは繰り返しフィールドの多くを生成すること、のみ次一度にすべてを導入するように、特定の位置を決定することは困難です繰り返しフィールド
ALTER TABLEのテーブル名
- 自動インクリメントを追加します。
COLUMN_B int型のアイデンティティを追加します(1,1)
(ではないCOLUMN_Bどこテーブル名から削除
COLUMN1でテーブル名のグループから最大(COLUMN_B)を選択し、COLUMN2、...)
ALTER TABLEのテーブル名ドロップ列のCOLUMN_B
20、説明:リストデータベース内のすべてのテーブル名
ここで、タイプ=「U」ユーザのsysobjectsから選択名の// Uの代表
21、説明:リストのすべてのテーブルのカラム名
ID = OBJECT_ID( 'TableNameが')SYSCOLUMNSから名前を選択
22、説明:リストされたタイプ、ベンダ、PCSフィールドフィールド型配列に、ケースは容易に同様のケースを選択し、複数の選択肢を達成することができます。
タイプ、和SUM(場合「C」ベンダー場合、次に他個0端)、和(ケースベンダ「B」を他個0端)テーブル名のグループから(他の場合に「A」をPCS 0端ベンダーの場合)を選択します種類別
結果を表示します:
ベンダー個を入力
1台のコンピュータ
1台のコンピュータ
ディスクB 2
A 2 CD
B 3本の携帯電話
C 3の携帯電話
23、説明:テーブルtable1を初期化
TRUNCATE TABLE TABLE1
24、説明:10から15までを選択したレコード
識別DESCによって(選択トップ15のID ASCによってテーブルの順序から*)table_别名順から上位5 *を選択
第三に、スキル
複数のSQL文で使用する場合1,1 = 1,1 = 2は、使用され
「1 = 1はどこ」「1 = 2」は、すべて選択されていないすべて選択され、
以下のような:
@strWhereもし!= ''
ベギン
セット@strSQL = '選択数(*)からの合計として[' + @tblName + ']ここで、' + @strWhere
終わり
そうしないと
ベギン
セット@strSQL = 'SELECT COUNT(*)からの合計として[' + @tblName + ']'
終わり
私たちは、直接書き込むことができます
エラー!目次項目が見つかりました。
セット@strSQL = '選択数(*)からの合計として[' + @tblName + '1 = 1安定' + @strWhere 2、データベースを縮小
- インデックスを再構築
DBCC REINDEX
DBCC INDEXDEFRAG
- データとログを縮小
DBCC SHRINKDB
DBCC SHRINKFILE
図3に示すように、圧縮されたデータベース
DBCC SHRINKDATABASE(DBNAME)
4、既存のユーザー権限に新しいユーザーにデータベースを転送します
幹部sp_change_users_loginを 'update_one'、 'NEWNAME'、 'OLDNAME'
行きます
5、バックアップのチェックセット
ディスク=からVERIFYONLY RESTORE 'E:\ dvbbs.bak'
6、修理データベース
ALTER DATABASE [ドッブス] SET SINGLE_USER
GO
DBCC CHECKDB( 'ドッブス'、REPAIR_ALLOW_DATA_LOSS)WITH TABLOCK
GO
ALTER DATABASE [ドッブス] SET MULTI_USER
GO
7、クリア済みのログ
SET NOCOUNT ON
DECLAREの@LogicalFileNameのシステム名、
@MaxMinutes INT、
@NewSize INT
操作対象のデータベース名 - のUSEテーブル名
SELECT @LogicalFileName = 'tablename_log'、 - ログファイル名
@MaxMinutes = 10、 - リミット時間にログをラップすることができました。
@NewSize = 1 - ログファイルを設定したいサイズ(M)
セットアップ/初期化
DECLARE @OriginalSize int型
SELECT @OriginalSize =サイズ
SYSFILES FROM
WHERE名= @LogicalFileName
(+ DB_NAME 'は元のサイズ')+ SELECT + 'LOGは'
CONVERT(VARCHAR(30)、@ OriginalSize)+ '8Kページや' +
CONVERT(VARCHAR(30)、(@ OriginalSize * / 1024 8))+ 'MB'
SYSFILES FROM
WHERE名= @LogicalFileName
TABLE DummyTransのCREATE
(DummyColumnはchar(8000)NOT NULL)
DECLARE @Counter INT、
@StartTime DATETIME、
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE()、
@TruncLog = 'BACKUP LOG' + DB_NAME()+ 'WITH TRUNCATE_ONLY'
DBCC SHRINKFILE(@LogicalFileName、@NewSize)
EXEC(@TruncLog)
- ラップログ必要に応じて。
WHILE @MaxMinutes> DATEDIFF(MI、@StartTime、GETDATE()) - 時間が満了していません
AND @OriginalSize =(名= @LogicalFileName SYSFILESからサイズを選択)
AND(@OriginalSize * / 1024 8)> @NewSize
BEGIN - 外部ループを。
SELECT @Counter = 0
WHILE((@Counter <@OriginalSize / 16)AND(@Counter <50000))
BEGIN - 更新
INSERT DummyTransのVALUES( 'フィルログ')DELETE DummyTrans
@Counter = @Counter + 1を選択
終わり
EXEC(@TruncLog)
終わり
+ DB_NAME SELECT 'の最終的なサイズは、'()+ + 'LOGです'
CONVERT(VARCHAR(30)、サイズ)+ '8Kページや' +
CONVERT(VARCHAR(30)、(サイズ* / 1024 8))+ 'MB'
SYSFILES FROM
WHERE名= @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
8、説明:テーブルを変更します
幹部sp_changeobjectownerを 'テーブル名'、 'DBO'
図9に示すように、全てのテーブル格納変更
PROCEDURE dbo.User_ChangeObjectOwnerBatchのCREATE
NVARCHARとして@OldOwner(128)、
NVARCHARとして@NewOwner(128)
なので
NVARCHARとしてDECLARE @Name(128)
NVARCHARとしてDECLARE @Owner(128)
NVARCHARとしてDECLARE @OwnerName(128)
DECLARE CURSOR FOR curObject
「名前」=名前を選択
'所有者' = USER_NAME(UID)
sysobjectsにから
どこUSER_NAME(UID)= @ OldOwner
名前の順序
OPEN curObject
curObject INTO @Name、@Ownerから次のFETCH
WHILE(@@ FETCH_STATUS = 0)
ベギン
所有者= @ OldOwner @場合
ベギン
セット@OwnerName = @OldOwner + '' + RTRIM(@Name)
EXEC sp_changeobjectownerを@OwnerName、@NewOwner
終わり
- 名@を選択し、@ newownerに、@ OldOwner
curObject INTO @Name、@Ownerから次のFETCH
終わり
近くcurObject
DEALLOCATE curObject
GO
10、SQL Serverのサイクルの書き込みデータを直接
@i int型を宣言
私は= @セット1
30 @i <しばらく
ベギン
テスト(ユーザーID)の値(@i)に挿入
セット@私は= I + 1 @
終わり