----一般的なデータベース操作のCRUDの実際の開発をSQLServerの削除

 

- 私たちは例を提供する学部、クラスや学生に持っています。
 [DBO]テーブルを作成.YuanXi
   上記のid int型の IDENTITY(11)NOT NULL、 - 学校自己インクリメントID
   VARCHAR YuanXiName(50はnull、 - 学部名
   
 [DBO]テーブルを作成するに.Class
   上述のID のint IDENTITY(11)NOT NULL、 - 増分からのクラスID
   YuanXiID int型 はnull、 - 学部のid
   VARCHARクラス名(50ヌル - クラス名
  
 [DBO]テーブルを作成.Student
   上記のid int型の IDENTITY(11)NOT NULL、 - 増分から学生証
   ClassIDの   int型 はnull、 - クラスID
   VARCHAR StudentName(50はnull、 - 学生の名前
- このテーブルは、テーブルの写真で、I一時加え、プレゼンテーションを行ってもよいです
[DBO]テーブルを作成.PathImg
   
   上記のid int型の IDENTITY(11)NOT NULL、 - 学校自己インクリメントID
   VARCHARテーブル名(50はnull、 - これは、テーブルひなこXuanXiテーブルに加えてテーブルの変更だけでなく、情報工学、プラスのid学校に、例えば、私は情報工学の大学での価格絵をしたい、表示することです
   TableNameId   int型 はnull、 - これは1つのIDのテーブルです
   VARCHARパス(50はnull、 - ストレージクラスフォトパス

実際には、ほとんどの操作を削除して挿入します。

私たちは、単に一般的でシンプルな削除言います:

1、テーブル内のすべてのデータを削除します。

削除から YuanXi 1 = 1 

図2に示すように、削除された条件に基づいて、データテーブルの一部

削除から Yuanxi WHERE YuanXiName =パラメータが渡されました

       次に、それは、マルチテーブルデータ削除問題に関与しています。注:削除操作の実装で実際の開発では、原則に従ってください、データの一部を削除するために、つまり、尾を残していない、我々は、このデータを取る必要がありますし、そこにすべて関与していると、他のデータには影響しません。すべて削除し、そうでない場合は、他のテーブルが残留を持つことになり、それは、データのゴミで、メンテナンスのフォローアッププロジェクトを助長されていません。削除操作は、多くの場合、あなたはデータを削除したいときに、それらのほとんどは、いくつかのテーブルからのデータの削除を伴います。

       また、例えば、上記の4つのテーブルに関連して、レベルを考慮する必要があり、削除するときここに私が何かを言っている、私はテーブルを情報工学YuanXiの学校を削除したい場合は、その後、私は工学部を置くと、すべてのデータに関連する情報があることを、削除クラステーブルクラス情報工科大学、すべてのクラスの生徒のテーブルの下で、学生だけでなく、画像が削除されているすべてのデータパスのための3つのテーブル上の表の一般的な絵。しかし、私はクラスのテーブルのマルチメディアを削除したい場合は、その後、私は情報工学大学YuanXiテーブルを削除することはできません、と私は情報工学の学校を削除したい場合は、その後、コンピュータ科学と技術クラステーブルが無駄になります。これは通常のプラットフォームの番組に影響を与えるデータエラーを提供します。そして、あなたはすべての情報工学部の学生、約テーブルクラスと生徒画像のパス画像パスの一般的な画像のための学生テーブルを削除することができます。

    ここで私はあなたが大学を削除表示され、操作も削除されたデータの最大のリストであり、当然のことながら、4は上記表のためであります:

@YuanXiID:idパラメータは、使用する次のストアドプロシージャを作成、yuanXIテーブルを通過するので、直接のこの形態は、上記の記述されました。

- //最初のステップ:
WHERE ID = @ YuanXiID-- Yuanxiからの削除は、学部が削除
FOM PathImg場所テーブル名は= 'YuanXi削除 'とTableNameID = @ YuanXiID - ユニバーサル・ピクチャーズ削除テーブルイメージパス
- //最初に2つのステップは:注:このデータクラステーブル、学生テーブルを削除することができないであろうデータを削除する場合はIDに関連付けられたクラスと学生テーブルが削除されているので、ので、この時間は、それを行う必要があります
/ /高校生とPathImg Sudentテーブル・イメージ・パスに関連付けられたクラスを削除
それ以外の状況は、IDを表示します関連するテーブルを見つけることができなかった、あなたは逆の順序で削除したいです。
PathImgテーブルに学生のパス上の画像のIDを削除します。

     PathImgから削除どこでテーブル名=「学生」とID(学生からIDを選択する場所でのID(クラスからIDを選択する場所YuanXiID = @ YuanXiID))

    - /(2)/删除学生表中学生Idは
     ID(どこYuanXiID = @ YuanXiIDクラスからIDを選択します)で学生から削除します

    - //(3)クラステーブルクラスIDを削除し
     、クラスから削除= @ YuanXiID WHERE YuanXiID

    - //(4)クラスの画像パスIdをPathImgテーブルを削除します。 

     (ここYuanXiID = @ YuanXiIDクラスからIDを選択)でPathImgテーブル名=「クラス」から削除してTableNameID

 - 注:(1)及び(2)の前になければならず、(4)(3)、(1)(2)上で実行されなければならないで行われます。クリーンなデータを削除するように。

  アップ整頓、データの削除、一般的なパラメータはID列によってテーブルから渡されることに注意:(ストアドプロシージャを書き込み、このパラメータ)が一意に決定されます

    

USEは、 [ TESTDATA ] 
GO 
SET ANSI_NULLSをON 
GO 
SET QUOTED_IDENTIFIER ON 
GO

ALTER  PROCEDURE  [ DBO ][ DeleteYuanXi ] 
 @YuanXiID  INT   - YUanXiテーブルの変数ID列を表すパラメータ
ASが 
削除 から Yuanxi WHEREイド= @YuanXiID - カテゴリー削除
削除 PathImgからテーブル名= ' Yuanxi '  TableNameID = @YuanXiID - 共通画像テーブルイメージパスを削除する削除から PathImg WHEREテーブル名=「学生  
  PathImgテーブル・イメージ・パス中学生を削除する - とID(同上では(YuanXiID = @ YuanXiID)クラスからIDを選択する学生のIDを選択)で
删除学生表中学生イド - イドでは、(YuanXiID = @ YuanXiIDクラスからIDを選択する)学生から削除
YuanXiID = @ YuanXiID--クラスIDクラスのテーブルを削除するクラスから削除
WHEREテーブル名= PathImg削除クラス(SELECT ID = @ YuanXiIDからWHERE YuanXiIDクラス)及びTableNameID - PathImgテーブルクラスの画像パスを削除

今、我々は、それは簡単なことだろうと思ったとして削除操作ではないと思われます。

   何のように、当然のことながら、データベースを学びたい、理論的な知識は重要であるが、実際にはより重要であり、それは一部の人のために、明確かつ論理的に、知識の理論から来るが、彼が動作できるようになることがあり、それは別の問題です。彼は、ストアドプロシージャの多くのように背後にあるコードを書くようなものですので、私はちょうど、これらのストアドプロシージャを始め、ルック無知な力だときのように、数百行を持って私は泣きたい見えます。私は、これは右であることを知って、時間をかけて、私も、私は同じの後ろにコードを書くのSQLコードを書くのが好き、Baiduの上で会うことはありませんが、データベースなどの具体的な理論を、知らない、何も理論的な知識を学ぶことがなかったです効率を最適化するだけでなく、効率を改善する方法を知るためのロジック・コードは理由が何であるかについての知識が少し高くなります。本当に文Laodengは「練習は真実をテストするための唯一の基準であるべきです!"

おすすめ

転載: www.cnblogs.com/zpy1993-09/p/11786057.html