Я пытаюсь создать несколько пользовательских функций из одного файла. sql. Я использую SQL Server и выполняю свои запросы, используя SqlClient
из C# s System.Data
.
Содержимое файла. sql:
CREATE FUNCTION [dbo].[GetUserId] (@username VARCHAR(32))
RETURNS INT
AS
BEGIN
DECLARE @userId INT = -1
SET @userId = (SELECT DISTINCT UserId FROM Users WHERE UserName = @username)
RETURN @userId
END
GO
CREATE FUNCTION [dbo].[GetUserId2] (@username2 VARCHAR(32))
RETURNS INT
AS
BEGIN
DECLARE @userId2 INT = -1
SET @userId2 = (SELECT DISTINCT UserId FROM Users WHERE UserName = @username2)
RETURN @userId2
END
Вот ошибка, которая выдается, когда я выполняю инструкцию:
System.Data.SqlClient.SqlException: 'Неверный синтаксис рядом с' GO '.
Должен объявить скалярную переменную "@ username2 ".
Неверный синтаксис рядом с 'END'. '
Есть идеи? Я новичок в SQL в целом, но мне кажется, что мне не хватает понимания синтаксиса / пакетирования.
РЕДАКТИРОВАТЬ: Мне стало известно, что GO является частью SQL Server Management Studio, а не SqlClient
. Если я удаляю 'GO' из моего файла. sql, я получаю эту ошибку:
'CREATE FUNCTION' должен быть первым оператором в пакете запроса.
Как разделить операторы CREATE FUNCTION
без использования GO?