Size: a a a

2020 November 19

Д

Денис in sql_ninja
в начале скрипта
источник

K

Kostya in sql_ninja
так это функция ?
источник

Д

Денис in sql_ninja
Kostya
так это функция ?
да, скалярная
источник

NP

Nick Proskuryakov in sql_ninja
Денис
SELECT * FROM CheckSuperUser();
GO
Так это ж не скалярная
источник

K

Kostya in sql_ninja
уберите * и фром
источник

NP

Nick Proskuryakov in sql_ninja
источник

NP

Nick Proskuryakov in sql_ninja
Читай
источник

K

Kostya in sql_ninja
точнее фром после, елси вязать будуте с таблицей
источник

K

Kostya in sql_ninja
Nick Proskuryakov
Так это ж не скалярная
да, я параметры тоже не увидел
источник

K

Kostya in sql_ninja
ну и суть запроса функции не так
источник

Д

Денис in sql_ninja
теперь вот так:  Сообщение 195, уровень 15, состояние 10, строка 32
CheckSuperUser не является известным имя встроенной функции.
источник

OM

Oleg Makarikhin in sql_ninja
Денис
теперь вот так:  Сообщение 195, уровень 15, состояние 10, строка 32
CheckSuperUser не является известным имя встроенной функции.
проверь неймспейсы, полный путь к объекту. имя текущей базы.
источник

OM

Oleg Makarikhin in sql_ninja
типа
select .. from dbo.functionname()
источник

Д

Денис in sql_ninja
так что, получается я не могу создать функцию без параметров и  возвращающую скаляр. ?
источник

NP

Nick Proskuryakov in sql_ninja
😞
источник

NP

Nick Proskuryakov in sql_ninja
Покажи фукнцию
источник

Д

Денис in sql_ninja
ALTER FUNCTION CheckSuperUser(@u int)
RETURNS INT
BEGIN
 DECLARE @count_admins INT;
 SET @count_admins = 0;
 DECLARE @i BIGINT;
 SELECT @i = MIN(UserId) FROM Users;
 WHILE @i IS NOT NULL
 BEGIN
   DECLARE @x INT;
   SELECT @x = SuperUser FROM Users WHERE UserId = @i;
   IF @x = 1
   BEGIN
     SET @count_admins = @count_admins + 1
   END
   IF (@count_admins > 3)
   BEGIN
     RETURN 1
   END
   SELECT @i = MIN (UserId) FROM Users WHERE UserId > @i;
 END
 RETURN 0
END
GO
источник

Д

Денис in sql_ninja
источник

NP

Nick Proskuryakov in sql_ninja
И теперь свой вызов
источник

Д

Денис in sql_ninja
USE ShopDB
GO

SELECT * FROM CheckSuperUser()
GO
источник