не знаю почему подчеркивает первую линию красным. В чём может быть проблема. Помогите пожалуйста
BEGIN
CREATE FUNCTION funkcja(@p1 int = 18, @p2 int = 30)
RETURNS TABLE
AS
RETURN (SELECT * FROM Employees
WHERE DATEDIFF(year, BirthDate, getdate()) between @p1 and @p2)
GO
SELECT EmployeeID, LastName, FirstName, ROW_NUMBER(order by employyID desc) as number
FROM funkcja(default)
WHERE number % 3 = 0
order by desc
END;
GO
задан 29 мая 2020 в 20:15
1
Вам необходимо убрать ключевое слово BEGIN перед началом создания функции, т.к. это вызывает синтаксическую ошибку: «CREATE FUNCTION» должна быть единственной в пакете
Для вызова каждого параметра по умолчанию, необходимо передать ключевое слово DEFAULT в верхнем регистре
Код должен выглядеть следующим образом
CREATE FUNCTION funkcja(@p1 int = 18, @p2 int = 30)
RETURNS TABLE
AS
RETURN (SELECT * FROM Employees
WHERE DATEDIFF(year, BirthDate, getdate()) between @p1 and @p2)
GO
BEGIN
SELECT EmployeeID, LastName, FirstName, ROW_NUMBER(order by employyID desc) as number
FROM funkcja(DEFAULT, DEFAULT)
WHERE number % 3 = 0
order by desc
GO
END;
ответ дан 30 мая 2020 в 10:02
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопрос
Изучите связанные вопросы
Посмотрите похожие вопросы с этими метками.
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования.
. . .
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025
Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . .
Максимальная производительность C#: Процессорный кэш
stackOverflow 20.04.2025
Знакомство с внутренним устройством процессорного кэша — ключевой шаг в написании по-настоящему быстрого кода на C#. Этот слой архитектуры компьютера часто ускользает от внимания разработчиков, но. . .
Максимальная производительность C#: Введение в микрооптимизации
stackOverflow 20.04.2025
В мире разработки на C# многие привыкли полагаться на . NET Runtime, который «магическим образом» сам оптимизирует код. И часто это работает — современные JIT-компиляторы творят чудеса. Но когда речь. . .
MVC фреймворк в PHP
Jason-Webb 19.04.2025
Архитектурный паттерн Model-View-Controller (MVC) – это не просто модный термин из мира веб-разработки. Для PHP-программистов это фундаментальный подход к организации кода, который радикально меняет. . .
Вопрос 26: Представления
Представление — это виртуальная таблица, содержимое которой определяется запросом.
Преимущества:
- Создает контролируемую (управляемую) среду, позволяет пользователям сосредоточиться на данных.
- Скрывает сложность запросов к данным.
- Обеспечивает безопасность, является объектом промежуточного слоя.
- Организует данные сложных запросов, соединяющих несколько таблиц.
- Производительность View зависит от сложности запроса, лежащего в его основе.
Создание представлений
Синтаксис
CREATE VIEW view_name [(column_list)]
[WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}]
AS select_statement
[WITH CHECK OPTION]
Инструкция CREATE VIEW должна быть единственной инструкцией пакета. (Это означает, что эту инструкцию следует отделять от других инструкций группы посредством инструкции GO.)
Параметр view_name задает имя определяемого представления, а в параметре column_list указывается список имен, которые будут использоваться в качестве имен столбцов представления. Если этот необязательный параметр опущен, то используются имена столбцов таблиц, по которым создается представление. Параметр select_statement задает инструкция SELECT, которая извлекает строки и столбцы из таблиц (или других представлений). Параметр WITH ENCRYPTION задает шифрование инструкции SELECT, повышая таким образом уровень безопасности системы баз данных.
Предложение SCHEMABINDING привязывает представление к схеме таблицы, по которой оно создается. Когда это предложение указывается, имена объектов баз данных в инструкции SELECT должны состоять из двух частей, т.е. в виде schema.db_object, где schema — владелец, а db_object может быть таблицей, представлением или определяемой пользователем функцией.
Пример создания:
USE Northwind
GO
CREATE VIEW dbo.EmployeeView
AS
SELECT LastName, Firstname
FROM Employees
Изменение и удаление представлений
Для изменения определения представления в языке Transact-SQL применяется инструкция ALTER VIEW. Синтаксис этой инструкции аналогичен синтаксису инструкции CREATE VIEW, применяющейся для создания представления.
Пример использования ALTER
GO
ALTER VIEW view_WithoutBudget
AS SELECT Number, ProjectName
FROM Project
WHERE Number >= 'p3';
При удалении представления инструкцией DROP VIEW все другие представления, основанные на удаленном, также удаляются, как показано в примере ниже:
DROP VIEW view_Consultant;
При удалении базовой таблицы представления, основанные на ней другие представления, не удаляются автоматически.
results matching ««
No results matching ««
Recently while creating a script to migrate the new holding tables over to the stage and production machines I ran into a little issue. The holding table we are using in this case houses several different sets of data for our migration project. Tables that are used only for going from the old system to the new (which will be going away in a few months) and tables that will be used in the future while on the new system. In order to keep these tables separated we decided put them in different schemas inside the holding database. For this instance they will be called leaving and future. First we are checking to see if schema already exists, which is not an issue. IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ‘Current’) From there we need to create the schema if it doesn’t already exist, also not an issue. A simple piece of code: CREATE SCHEMA Current The entire code would logically be the combination of the two. However, if you run that, an error will occur saying there is «Incorrect syntax near the keyword ‘SCHEMA'». The reason for this is that the CREATE SCHEMA command has to be the first command that is given. If you do want to check to see if a schema already exists before trying to create it there is luckily a way around that. Simply replace CREATE SCHEMA Current with EXEC ‘CREATE SCHEMA Current’ and everything will run without any errors. The final code is listed below: IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ‘Current’) EXEC ‘CREATE SCHEMA Current’
There is something wrong with the SQL after this error, and I’m not sure what.
Error: You have an error in your SQL Syntax. Please check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(0), PRIMARY KEY (AddressID
), CONSTRAINT FK_Address_Profile
FOREIGN KEY ‘ at line 15
and here is the create syntax:
DROP TABLE IF EXISTS `MyDB_dbo`.`Address`; CREATE TABLE `MyDB_dbo`.`Address` ( `AddressID` INT(10) NOT NULL AUTO_INCREMENT, `ProfileID` INT(10) NOT NULL, `Address1` VARCHAR(100) NOT NULL, `Address2` VARCHAR(100) NULL, `City` VARCHAR(50) NOT NULL, `State` VARCHAR(50) NOT NULL, `ZipCode` VARCHAR(50) NOT NULL, `ZipPlus` VARCHAR(6) NULL, `Country` VARCHAR(50) NULL, `MailReturned` DATETIME NULL, `DPVStatus` VARCHAR(1) NULL, `DateCreated` DATETIME NOT NULL, `StaffID` INT(10) NOT NULL, `Active` TINYINT NOT NULL DEFAULT (0), PRIMARY KEY (`AddressID`), CONSTRAINT `FK_Address_Profile` FOREIGN KEY `FK_Address_Profile` (`ProfileID`) REFERENCES `MyDB_dbo`.`Profile` (`ProfileID`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE = INNODB;
Is there something wrong with the CONSTRAINT keyword or something?