context.Database.ExecuteSqlCommand()
を使用してDbContextを通じてSQL文を送信する際に問題が発生しました。SqlException: 'GO'の近くの構文エラー
私は、これはしかし、SSMSの正確な文がエラーなしで実行されることを実行しているエラー文字列
Incorrect syntax near the keyword 'ALTER'.
Incorrect syntax near 'GO'.
で失敗
CREATE TABLE Phones([Id] [uniqueidentifier] NOT NULL PRIMARY KEY,
[Number] [int],[PhoneTypeId] [int])
GO
ALTER TABLE [dbo].[Phones] ADD CONSTRAINT [DF_Phones_Id]
DEFAULT (newid()) FOR [Id]
GO
実行しようとしていますか? DbContextを介してデフォルトの制約について解決する必要がある問題。私は、制約を使用し、IsDbGeneratedがtrueに設定されていない人々に問題があることを確認しました。私はそれがここにどのように適用されるかわからない。
ですSSMSの場合はtrueですが、SSMSのバッチ区切り記号を変更しても、上のコードは 'GO'でチョークします。 –
私が追加したい1つの注意。私のような場合は、SMO経由で渡す問合せから何らかの戻り値が必要な場合は、ExecuteWithResultsがGOおよびALTER文を実行するときに例外を戻すことに注意してください。私はこれを少し前に見つけて、スクリプト実行時にチェックされるUIでExecuteNonQueryにオプションを追加するだけでした。 – CodeWarrior