powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите плиз
7 сообщений из 7, страница 1 из 1
помогите плиз
    #39696702
Подчеркивает then else и end if; Воооот, спасите меня пожалуйста, добрые люди

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
CREATE PROCEDURE insert_into_service
 @manuf_name VARCHAR(60),
 @med_id INT
AS

begin
    declare @oId int
    declare @sId int   

if not exists
(select * from manufacturer 
	where manufacturer.name_manufacturer = @manuf_name)
    
then 

select @oId =  max(dbo.manufacturer.id_manufacturer) + 1
	from dbo.manufacturer;

insert into dbo.manufacturer
	values ( @oId,@manuf_name) 
		
else

select @oId =  dbo.manufacturer.id_manufacturer
	from dbo.manufacturer
    where dbo.manufacturer.name_manufacturer = @manuf_name;
    
end if;


select @sId =  max(dbo.manuf_medicament.id_man_med) + 1
	from dbo.manuf_medicament

insert into dbo.manuf_medicament 
	values(@sId,@med_id,@oId)
	
    select *
	from manuf_medicament;
	
END
...
Рейтинг: 0 / 0
помогите плиз
    #39696703
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так правильно, нет в MSSQL никаких "end if"
...
Рейтинг: 0 / 0
помогите плиз
    #39696704
да ладнооо, вот чёрт. А есть идеи как исправить?
...
Рейтинг: 0 / 0
помогите плиз
    #39696705
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Пекловда ладнооо, вот чёрт. А есть идеи как исправить?Открыть справку, изучить синтаксис и исправить.
...
Рейтинг: 0 / 0
помогите плиз
    #39696708
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И после then не хватает begin, а перед else - end.
Потому что у вас внутри then несколько инструкций.
...
Рейтинг: 0 / 0
помогите плиз
    #39696890
Владимир Затуливетер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
create procedure insert_into_service
    @manuf_name varchar(60)
  , @med_id int
as
begin
    declare @oId int;
    declare @sId int;

    if not exists ( select *
					from manufacturer
					where manufacturer.name_manufacturer = @manuf_name )
    begin

        select @oId = max(dbo.manufacturer.id_manufacturer) + 1
        from dbo.manufacturer;

        insert into dbo.manufacturer
        values ( @oId, @manuf_name );

    end else begin

        select @oId = dbo.manufacturer.id_manufacturer
        from dbo.manufacturer
        where dbo.manufacturer.name_manufacturer = @manuf_name;

    end;

    select @sId = max(dbo.manuf_medicament.id_man_med) + 1
    from dbo.manuf_medicament;

    insert into dbo.manuf_medicament
    values ( @sId, @med_id, @oId );

    select *
    from manuf_medicament;
end;
...
Рейтинг: 0 / 0
помогите плиз
    #39697057
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой вей, Сима, ви-таки решились прострелить себе колено...

для размышлений
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
DECLARE @tab TABLE ( [id] INT IDENTITY(1,1), [name] NVARCHAR(255) COLLATE Cyrillic_General_CI_AI, [time] DATETIME2(3) DEFAULT SYSDATETIME()  )
DECLARE @id INT
DECLARE @id_tab TABLE ( [id] INT, [action] VARCHAR(1), [time] DATETIME2(3) )
;
INSERT
INTO
  @tab (
    [name] )
OUTPUT
  inserted.[id],
  'I',
  SYSDATETIME()
  INTO @id_tab
VALUES 
  ( 'ООО Рога и копыта' ),
  ( 'ООО Праздник-праздник-праздник' )
;
SET @id = SCOPE_IDENTITY()
SELECT @id
;
MERGE
INTO
  @tab t
USING (
  SELECT [name] = 'ООО Рога и копыта'
  UNION ALL
  SELECT [name] = 'ПАО Пупкин и Ко'
) s
ON (
      s.[name] = t.[name] )
WHEN MATCHED THEN
  UPDATE SET
    t.[time] = SYSDATETIME()
WHEN NOT MATCHED BY TARGET THEN
  INSERT (
    [name] )
  VALUES (
    s.[name] )
WHEN NOT MATCHED BY SOURCE THEN
  DELETE
OUTPUT
  ISNULL( inserted.[id], deleted.[id] ),
  LEFT( $action, 1 ),
  SYSDATETIME()
  INTO @id_tab
;
SET @id = SCOPE_IDENTITY()
SELECT @id
;
SELECT
  *
FROM
  @tab
;
SELECT
  *
FROM
  @id_tab
;
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите плиз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]