Присвоение результата функции переменной SQL и отображение - PullRequest
19 голосов
/ 09 августа 2011

Перенос кода asp.net (VB.net) для использования функций и подпрограмм в качестве параметров.Использование MS Server Management Studio для создания указанных функций и подпрограмм.Хотели бы проверить функции изнутри MS SMS, прежде чем проверять их через веб-страницу.Вот пример.Скажем, у меня есть функция с именем "dbo.getNumber"

Я пытаюсь проверить это с помощью следующего:

USE [someDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @value int;

select @value = dbo.getNumber;

print @value;
go

Когда я набираю F5 (чтобы выполнить "запрос"), этодает следующее сообщение:

"Имя" dbo.getNumber "не разрешено в этом контексте. Допустимые выражения - это константы, константные выражения и (в некоторых контекстах) переменные. Имена столбцов недопустимы."

Функция dbo.getNumber была принята очень хорошо, кстати.(Он подсчитывает записи базы данных, которые соответствуют определенным критериям.)

Надеемся, что из нерабочего кода вы сможете понять, что я пытаюсь сделать.

Как вывести на печать значениефункция (для тестирования) из SMS?

Правильное решение, как указано Джеймсом Джонсоном, ниже:

USE [someDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @value int;

select @value = dbo.getNumber();

print @value;
go

Обратите внимание на скобки для вызова функции.Обратите также внимание: intellisense в SMS подчеркивает dbo.getNumber (), как если бы это была ошибка, но выполнение запроса с F5 работает и выдает правильный результат.

1 Ответ

46 голосов
/ 09 августа 2011

Вам нужно назвать это так:

select @value = dbo.getNumber()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...