Как вставить значения от 0 до 300 без повторной вставки и значение строки 302, равное 300

#sql-server-2008

#sql-server-2008

Вопрос:

у меня есть таблица с именем Time_check, в которой у меня есть два столбца

первый столбец: TimeId, который автоматически увеличивается

второй столбец: время, которое имеет тип данных int

теперь мне нужно вставить значения в столбец Time от 0 до 300, а строка ma после 300 будет равна 300

поскольку столбец time равен int, он не принимает значение varchar 300 .

как мне это сделать ….??

выведите что-то вроде :

 TimeId    Time

   1           0


   2          1

  .          .

  .          .

  301      300

 302      300 
  

Код, который я пробовал, был

 set nocount on

Declare @row varchar(10);

set @row=0;

WHILE  not EXISTS (SELECT * FROM Time_check)

BEGIN

  while(@row<=300)

begin

insert into [dbo].Time_check ([time]) valueS (@row)

set @row=@row 1;

end 

IF(@row=300)

declare @roww varchar(10)

set @roww='300 '

Insert into [dbo].Time_check([Time]) values (cast(@roww as int))

end
end
  

но я получаю ошибки

Заранее спасибо

Ответ №1:

Очевидным решением является изменение типа данных вашего time столбца на varchar, поскольку невозможно сохранить значение ‘300 ‘ в столбце int.

Может быть, вам следует пролить немного больше света на то, почему вам нужно хранить это значение в time столбце вашей таблицы, вместо того, чтобы уровень представления вашего приложения обрабатывал это?