Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание функции определяемой пользователем, синтаксис  [new]
ilya80let
Member

Откуда:
Сообщений: 24
Create FUNCTION HtmlToChief
RETURNS @tableHTML  NVARCHAR(MAX) AS

   BEGIN
DECLARE @begin varchar (8), @end varchar (8)
Set @begin =  convert(char(8),dateadd(d,-1,Getdate()),112)
Set @end = convert(char(8),getdate(),112)
DECLARE @t TABLE (vcName VARCHAR(128),dt1 DATETIME, dt2 DATETIME, vt3 VARCHAR(128), vt4 VARCHAR(128))

INSERT INTO @t
(
	vcName,
	dt1,dt2,vt3, vt4
)
select * from MyTable
declare @tableHTML  NVARCHAR(MAX)

SET @tableHTML =
    N'<H1>Ежедневный отчет по сотрудникам</H1>' +
	N'<table border="1">' +
    N'<tr><th>Сотрудник</th><th>Начало работы</th>' +
    N'<th>Конец работы</th><th>Время работы</th></tr>' +
    CAST ( (  
SELECT td=lower(vcName), '', 

td=(CASE WHEN Domain is Null THEN 'нет данных' ELSE Domain END) , '',
td=vcName, '',
td=(CASE WHEN Start is Null THEN 'нет данных' ELSE Start END), '',
td=(CASE WHEN Finish is Null THEN 'нет данных' ELSE Finish END), '',
td= (CASE WHEN WorkTime is Null THEN 'нет данных' ELSE WorkTime END)
FROM @t
order by Domain, vcName
              FOR XML PATH('tr'), TYPE 
    ) AS NVARCHAR(MAX) ) +
    N'</table>' ;
return
end

проблема с синтаксисом, Incorrect syntax near 'RETURNS'. Помогите разобраться пожалуйстаю
21 май 13, 17:45    [14328889]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
Glory
Member

Откуда:
Сообщений: 104751
ilya80let
Помогите разобраться пожалуйстаю

А взять пример создания функции из хелпа не пробовали ?
21 май 13, 17:48    [14328910]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ilya80let,

Create FUNCTION HtmlToChief()
RETURNS NVARCHAR(MAX) AS

BEGIN
...
return @tableHTML
end
21 май 13, 17:53    [14328951]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
ilya80let
проблема с синтаксисом, Incorrect syntax near 'RETURNS'.

Что за синтаксис странный?
"Create FUNCTION HtmlToChief
RETURNS @tableHTML NVARCHAR(MAX) AS"

Вы хотите написать функцию, возвращающую строку? Тогда так:

Create FUNCTION HtmlToChief
RETURNS NVARCHAR(MAX) AS
BEGIN

DECLARE @tableHTML  NVARCHAR(MAX)
...
Ваши вычисления
...

return @tableHTML
end
21 май 13, 17:54    [14328952]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
ilya80let
Member

Откуда:
Сообщений: 24
Glory, пробывал не осилил
SELECT <@tableHTML, sysname, @Result> = <@Param1, sysname, @p1>

	-- Return the result of the function
	RETURN <@tableHTML, sysname, @Result>
-------------------------------------------

как @Result присвоить значение?
21 май 13, 17:58    [14328990]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ilya80let
Glory, пробывал не осилил
SELECT <@tableHTML, sysname, @Result> = <@Param1, sysname, @p1>

	-- Return the result of the function
	RETURN <@tableHTML, sysname, @Result>
-------------------------------------------

как @Result присвоить значение?

Это в каком же хелпе вы нашли такой пример/синтаксис?! Можно ссылку?
21 май 13, 18:00    [14328998]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
Glory
Member

Откуда:
Сообщений: 104751
ilya80let
Glory, пробывал не осилил

Копи-пейст что ли не осилили ?
21 май 13, 18:01    [14329014]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
ilya80let
Member

Откуда:
Сообщений: 24
открыл шаблон в студио и попытался заполнить
CREATE FUNCTION <Scalar_Function_Name, sysname, FunctionName> 
(
	-- Add the parameters for the function here
	<@Param1, sysname, @p1> <Data_Type_For_Param1, , int>
)
RETURNS <Function_Data_Type, ,int>
AS
BEGIN
	-- Declare the return variable here
	DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>

	-- Add the T-SQL statements to compute the return value here
	SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>

	-- Return the result of the function
	RETURN <@ResultVar, sysname, @Result>

END
21 май 13, 18:03    [14329029]     Ответить | Цитировать Сообщить модератору
 Re: Создание функции определяемой пользователем, синтаксис  [new]
Glory
Member

Откуда:
Сообщений: 104751
ilya80let
открыл шаблон в студио и попытался заполнить

Пример
CREATE FUNCTION
Из
Хелпа
21 май 13, 18:06    [14329040]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить