這是我在stackoverflow上的第一篇文章,我希望是其中之一!在SQL Server Compact 3.5上使用CTE
我的問題是這樣的:我在查詢中使用CTE來檢測並刪除表中的重複記錄。此查詢在SQL Server 2005/2008中工作得很好,但在Compact中引發異常:
解析查詢時出錯。 [令牌行號= 1,抵消令牌線 = 1,令牌錯誤= WITH]
這是我的查詢:
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();
我缺少的東西,還是CTE不行的SQL Server Compact?