2009-09-27 50 views
0

我有2個表MachineGroups和機器。錯誤,同時從數據庫中刪除

計算機組具有值:

MachinegroupID
MachineGroupName
MAchineGroupDesc

和機器有值:

MachineGroupID(FK)
機號
MachineName Machinedesc

現在我想刪除機器組,但它給我一個錯誤,因爲它已經有值了。

所以我想刪除那些沒有機器的值,並給出一個錯誤消息,如果機器預設在特定的機器組中。

我試着查詢幹活,但它不工作..

System.Data.SqlClient.SqlConnection dataConnection = new SqlConnection(); 
      dataConnection.ConnectionString = 
       @"Data Source=JAGMIT-PC\SQLEXPRESS;Initial Catalog=SumooHAgentDB;Integrated Security=True"; 

      System.Data.SqlClient.SqlCommand dataCommand = new SqlCommand(); 
      dataCommand.Connection = dataConnection; 
      long MachineGroupID = Convert.ToInt64(Request.QueryString["node"]); 
      //tell the compiler and database that we're using parameters (thus the @first, @last, @nick) 
      **dataCommand.CommandText = ("Delete from [MachineGroups] where [MachineGroupID][email protected] not in (select distinct MachineGroupId from Machines)");** 

      //add our parameters to our command object 
      dataCommand.Parameters.AddWithValue("@MachineGroupName", MachineGroupName); 
      dataCommand.Parameters.AddWithValue("@MachineGroupDesc", MachineGroupDesc); 
      dataCommand.Parameters.AddWithValue("@TimeAdded", TimeAdded); 
      dataCommand.Parameters.AddWithValue("@MachineGroupID", MachineGroupID); 
      dataConnection.Open(); 

      dataCommand.ExecuteNonQuery(); 
      dataConnection.Close(); 

我在這裏試圖刪除特定machineGroup ...

如果有另一種方式來做到這一點請建議。

回答

3
Delete from MachineGroups 
where MachineGroupId not in 
    (select distinct MachineGroupId from Machines); 
+0

我得到一個錯誤.. 無效的對象名稱'MachineGroups' – user175084 2009-09-27 17:53:26

+0

@unknown(谷歌):你真的有一個名爲MachineGroups的表?檢查你的表名。這個查詢應該做你想做的事情。 – Canavar 2009-09-27 18:16:58

0

我還沒有嘗試過這一部分,但它應該給你一個想法

Delete from MachineGroups 
WHERE NOT EXISTS (SELECT TOP 1 MachineID FROM Machines 
WHERE Machines.MachineGroupID= MachineGroups.MachineGroupID) 
+0

我得到一個錯誤..無效的對象名稱MachineGroups「 – user175084 2009-09-27 17:54:00