数十のテーブルと多数のインデックスを持つ SQL Server データベースを使用して単純なプロジェクトを作成しましたが、特に複雑なことは何もありません。トリガーも、ストアド プロシージャも、追加の「データベース マジック」もありません。コードは C# で書かれており、Entity モデルと Dynamic Data Site を使用して基本をすばやくセットアップするだけなので、タイピング モンキーを動かして基本的なデータ エントリを実行しながら、プロジェクトをより成熟するように変更します。 .
SQL Server 2005 でテストしたところ、すべて正常に動作しました。そこで、Visual Studio を使用してセットアップを行い、それを入力中の Monkeys とその管理者に送信しました。1) 新しいデータベースを作成します。2) データベースの Create スクリプトを実行します。3) 私が提供したセットアップをインストールします。4) 便宜上、特別な構成ファイルに配置されている接続文字列を変更します。5) Web インターフェイスを使用して、問題が発生した場合は通知してください。
そして、何かがうまくいかなかった。この完全なエラー:行 1: '(' 付近の構文が正しくありません。'row_number' は認識された関数名ではありません。キーワード 'AS' 付近の構文が正しくありません。
コードで「row_number」を使用していません。クエリにはLinqを使用しています。その上、エンティティ モデルのおかげで、SQL の処理についてあまり心配する必要さえありません。(私はそれが得意ですが。)
私の最初の推測は、彼らが間違った接続文字列を使用していることです。彼らはこのアプリケーションを SQL Server にインストールしている可能性があります (それでも動作するはずです) が、接続文字列を完全に変更していないため、私のプロジェクトは SQL Server 2005 を使用していると考えています。他の厄介なバグ?
完全なエラー:
[SqlException (0x80131904): 1 行目: '(' 付近の構文が正しくありません。'row_number' は認識される関数名ではありません。キーワード 'AS' 付近の構文が正しくありません。]
System.Data.SqlClient.SqlConnection.OnError(SqlException 例外、ブール値breakConnection) +1950890 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 例外、Boolean breakConnection) +4846875 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior、 SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj) +2392
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33 System.Data.SqlClient.SqlDataReader.get_MetaData() +83 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
System.Data .SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、String メソッド) +32 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 動作、String メソッド) +141
System.Data.SqlClient.SqlCommand. ExecuteDbDataReader(CommandBehavior の動作) +12
System.Data.Common.DbCommand.ExecuteReader(CommandBehavior の動作) +10
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand、CommandBehavior の動作) +387[EntityCommandExecutionException: コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。]
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) +423
System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute(ObjectContext context, ObjectParameterCollection parameterValues) +743
System.Data. Objects.ObjectQuery1.GetResults(Nullable
1 forMergeOption) +157
System.Data.Objects.ObjectQuery`1.GetIListSourceListInternal() +13 System.Data.Objects.ObjectQuery.System.ComponentModel.IListSource.GetList() +7 System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect(DataSourceSelectArguments 引数、作成者qbConstructor) +1168 System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect(DataSourceSelectArguments 引数) +102
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments 引数、DataSourceViewSelectCallback コールバック) +19 System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73 システム。 Web.UI.WebControls.GridView.DataBind() +4 System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82 System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +72 System.Web.UI.Control .EnsureChildControls() +87 System.Web.UI.Control.PreRenderRecursiveInternal() +44 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI .Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
このアプリケーションは、以前は SQL Server 2000 システム上に構築されていましたが、問題なく動作しました。ただし、テスト データベースは 2005 にアップグレードされましたが、本番データベースはまだ 2000 を使用しています。これで問題は発生しないはずですが、私の推測は正しいですか?