Ceci est mon premier post sur stackoverflow, j'espère que c'est l'un des nombreux!Utilisation de CTE sur SQL Server Compact 3.5
Ma question est la suivante: J'utilise CTE dans une requête pour détecter et supprimer des enregistrements en double dans une table. Cette requête fonctionne très bien dans SQL Server 2005/2008, mais dans Compact, elle génère une exception:
Une erreur s'est produite lors de l'analyse de la requête. [numéro de ligne jeton = 1, ligne Token offset = 1, jeton erreur = WITH]
Voici ma requête:
SqlCeConnection con = new SqlCeConnection(ConfigurationManager.ConnectionStrings["ADSLConnectionString"].ConnectionString);
SqlCeCommand command = new SqlCeCommand();
command.Connection = con;
command.CommandType = CommandType.Text;
command.CommandText = "WITH Dublicates_CTE(Username, accountid)" +
" AS" +
" (" +
" SELECT UserName,min(accountid)" +
" FROM Accounts" +
" GROUP BY username" +
" HAVING Count(*) > 1" +
")" +
" DELETE FROM Accounts" +
" WHERE accountid IN (" +
" SELECT Accounts.accountid" +
" FROM Accounts" +
" INNER JOIN Dublicates_CTE" +
" ON Accounts.Username = Dublicates_CTE.Username" +
" AND Accounts.accountid <> Dublicates_CTE.accountid" +
") ";
con.Open();
command.ExecuteNonQuery();
Suis-je manque quelque chose, ou ne CTE fonctionne pas sur SQL Server Compact?