
Untitled
By: a guest on
Aug 10th, 2012 | syntax:
None | size: 1.65 KB | hits: 10 | expires: Never
Delete from table, and return the records which weren't deleted
Client ID Address
111111111 'foo st. 2'
222222222 'foo bld 1'
333333333 'foo rd 22'
444444444 'foo st. 1'
'Deleted rows: 2' //thats not a problem
'list of the records which weren't removed: {'foo st 22','foo st 1'} //thats a problem..
DECLARE @SplitString TABLE
(
value varchar(MAX)
)
DECLARE @MissingRecords TABLE
(
value varchar(MAX)
)
INSERT INTO @SplitString
SELECT part
FROM dbo.fSplitString('foo st 22, foo st 1', ',')
SELECT value
FROM @SplitString
WHERE value NOT IN ( SELECT Address
FROM TableName
)
DELETE FROM TableName
WHERE Address IN (SELECT Value FROM @SplitString)
SELECT *
FROM @MissingRecords
sql="DELETE FROM TABLENAME where Col1='Something'";
sql="SELECT * FROM TABLENAME where Col1='Something'";
List<string> addresses=new List<string>()
{
"foo st. 2","foo bld 1","foo st 22","foo st 1"
};
List<string> deleted=new List<string>();
List<string> notdeleted=new List<string>();
using(SqlConnection cn=new SqlConnection("connStr"))
{
using(SqlCommand cmd=new SqlCommand())
{
cmd.CommandText="DELETE from TableName Where Address=@address";
cmd.Connection=cn;
cmd.Parameters.Add("@address",SqlDbType.VarChar,50);
cn.Open();
for(String address in addresses)
{
cmd.Parameters["@address"].Value=address;
int result=cmd.ExecuteNonQuery();
if(result!=-1)
{
//deleted
deleted.Add(address);
}
else
{
//not deleted
notdeleted.Add(address);
}
}
cn.Close();
}
}