Хотя нижеследующее отлично работает в SQL Server Management Studio, он просто не будет работать в C#:C# MSSQL изменить таблицу затем изменить значения
DECLARE @PeriodID AS bigint;
SELECT TOP 1 @PeriodID = PeriodID FROM Periods ORDER BY PeriodID DESC;
IF NOT EXISTS(SELECT * FROM information_schema.columns WHERE COLUMN_NAME = N'PeriodID' AND TABLE_NAME = N'MobilePlans')
BEGIN
BEGIN
ALTER TABLE MobilePlans ADD PeriodId bigint NULL
END
BEGIN
UPDATE MobilePlans SET PeriodID = @PeriodID
END
BEGIN
ALTER TABLE MobilePlans ALTER COLUMN PeriodID bigint NOT NULL
END
END
В C#, он продолжает говорить мне Invalid column name 'PeriodID'.
и проведя пару часов, я думал, что попрошу здесь.
Во время поиска я наткнулся на http://bytes.com/topic/c-sharp/answers/258520-problem-sqlcommand-t-sql-transaction, но я не мог перевести свой условный запрос на этот вопрос.
Почему C# не может работать так же, как студия управления?
Есть ли другой способ сделать то, что делает запрос, что работает на C#? Мне нужно выполнить это на 400 базах данных, поэтому мне бы очень понравился сценарий для этого.
Заранее благодарен!
Версия сервера SQL - 2008. Версия менеджера - 2008 (10.0.2531). Версия .NET Framework 2.0.
О, мой бог .. Эта маленькая вещь решила мою проблему. Как досадно, что компилятор не может понять, что один из них. Думаю, я слишком привык, чтобы получить материал, раздаваемый на блюде компилятором C# :) Спасибо, кучка, Дамиен! – Heki