Я видел некоторые ответы, которые казались близкими к моему решению, но они использовали код, и я бы предпочел сделать это в SQL, если смогу.Я примерно знаю, что нужно, но я никогда не видел, чтобы кто-нибудь делал это раньше в SQL.Я строю таблицу, но я не хочу настраивать каждое имя столбца вручную.Структура будет примерно такой:
ID - BIGINT - Primary Key - Seed Increment 1 start at 1
Email - NVARCHAR(500) do not allow null
Board_Name - NVARCHAR(100) - Do not allow null
Tile_1 - BIT - Do Not Allow Null
Tile_2 - BIT - Do Not Allow Null
Tile_3 - BIT - Do Not Allow Null
Tile_4 - BIT - Do Not Allow Null
Tile_5 - BIT - Do Not Allow Null
Tile_6 - BIT - Do Not Allow Null
Tile_7 - BIT - Do Not Allow Null
Tile_8 - BIT - Do Not Allow Null
Tile_9 - BIT - Do Not Allow Null
Tile_10 - BIT - Do Not Allow Null
В таблице "Tile_X" мне нужно сделать это 348 раз.Очевидно, я не хочу делать это 348 раз.
DECLARE @X INT
SET @X = 1
WHILE (@X <=348)
BEGIN
PRINT @X
SET @X = @X + 1
ALTER TABLE [dbo].[Game_Board]
ADD 'Tile_' + @X BIT NOT NULL;
END
GO
Выдает ошибку:
Сообщение 102, Уровень 15, Состояние 1, Строка 11
Неверный синтаксис рядом с 'Tile _'.
Обновление: я уже построил таблицу, но я еще не добавил столбцы плитки.Поэтому мне нужно выяснить, как исправить этот цикл, чтобы он мог добавить их.
Обновление: также пробовал это:
DECLARE @X INT
DECLARE @Column NVARCHAR(100)
SET @X = 1
SET @Column = 'Tile_' + @X
WHILE (@X <=348)
BEGIN
PRINT @X
ALTER TABLE [dbo].[Game_Board]
ADD @Column BIT NOT NULL;
SET @X = @X + 1
SET @Column = 'Tile_' + @X
END
GO
Ошибка получения:
Сообщение 102, Уровень 15, Состояние 1, Строка 12
Неверный синтаксис рядом'@Column'.