Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 10th, 2012  |  syntax: None  |  size: 1.65 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Delete from table, and return the records which weren't deleted
  2. Client ID    Address
  3.  
  4. 111111111  'foo st. 2'
  5.  
  6. 222222222  'foo bld 1'
  7.  
  8. 333333333  'foo rd 22'
  9.  
  10. 444444444  'foo st. 1'
  11.        
  12. 'Deleted rows: 2' //thats not a problem
  13. 'list of the records which weren't removed: {'foo st 22','foo st 1'} //thats a problem..
  14.        
  15. DECLARE @SplitString TABLE
  16. (
  17.     value varchar(MAX)
  18. )
  19.  
  20. DECLARE @MissingRecords TABLE
  21. (
  22.     value varchar(MAX)
  23. )
  24.  
  25.  
  26. INSERT INTO @SplitString
  27. SELECT  part
  28. FROM    dbo.fSplitString('foo st 22, foo st 1', ',')
  29.  
  30.  
  31.  
  32. SELECT  value
  33. FROM    @SplitString
  34. WHERE   value NOT IN (  SELECT Address
  35.                         FROM TableName
  36.                      )
  37.  
  38. DELETE  FROM TableName
  39. WHERE   Address IN (SELECT Value FROM @SplitString)
  40.  
  41. SELECT  *
  42. FROM    @MissingRecords
  43.        
  44. sql="DELETE FROM TABLENAME where Col1='Something'";
  45.        
  46. sql="SELECT * FROM TABLENAME where Col1='Something'";
  47.        
  48. List<string> addresses=new List<string>()
  49. {
  50.  "foo st. 2","foo bld 1","foo st 22","foo st 1"
  51. };
  52. List<string> deleted=new List<string>();
  53. List<string> notdeleted=new List<string>();
  54.  
  55. using(SqlConnection cn=new SqlConnection("connStr"))
  56.  {
  57.   using(SqlCommand cmd=new SqlCommand())
  58.   {
  59.     cmd.CommandText="DELETE from TableName Where Address=@address";
  60.     cmd.Connection=cn;
  61.     cmd.Parameters.Add("@address",SqlDbType.VarChar,50);
  62.     cn.Open();
  63.     for(String address in addresses)
  64.      {
  65.        cmd.Parameters["@address"].Value=address;
  66.        int result=cmd.ExecuteNonQuery();
  67.        if(result!=-1)
  68.         {
  69.           //deleted
  70.           deleted.Add(address);
  71.         }
  72.       else
  73.         {
  74.          //not deleted
  75.          notdeleted.Add(address);
  76.         }
  77.      }
  78.     cn.Close();
  79.    }
  80.  }