Mam problem z wysłaniem instrukcji SQL za pomocą DbContext przy użyciu context.Database.ExecuteSqlCommand()
.Wyjątek wyjątku SqlException: błąd składni w pobliżu "GO"
Próbuję wykonać
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
ten nie powiedzie się z łańcucha błędów
Incorrect syntax near the keyword 'ALTER'.
Incorrect syntax near 'GO'.
jednak uruchomiony że dokładny rachunek w SSMS przebiega bez błędów? Wszelkie problemy, które muszę rozwiązać, dotyczące domyślnego ograniczenia poprzez DbContext. Widzę problemy z osobami używającymi ograniczeń i nieposiadanie ustawionego zestawu IsDbGener. Nie jestem pewien, jak by to tutaj miało zastosowanie.
To prawda dla SSMS, jednak nawet jeśli zmienisz separator wsadowy w SSMS, powyższy kod nadal będzie dławił się na "GO". –
Jedna uwaga, którą chcę dodać. Jeśli lubisz mnie, często potrzebujesz jakiejś wartości zwracanej z zapytań, które przechodzisz przez SMO, pamiętaj, że ExecuteWithResults zwróci wyjątki, gdy uruchomi instrukcje GO i ALTER. Zauważyłem to niedawno i skończyło się po prostu umieszczeniem opcji ExecuteNonQuery w naszym interfejsie użytkownika, który jest sprawdzany w czasie wykonywania skryptu. – CodeWarrior