将函数结果分配给SQL变量并显示

elb*_*laf 20 printing variables ssms function

迁移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
Run Code Online (Sandbox Code Playgroud)

当我输入F5(运行"查询")时,它会给出以下信息:

"在此上下文中不允许使用名称"dbo.getNumber".有效表达式是常量,常量表达式和(在某些上下文中)变量.不允许使用列名."

函数dbo.getNumber被接受就好了,顺便说一下.(它计算满足特定条件的数据库记录.)

希望你可以从非工作代码中推断出我想要做什么.

如何从SMS中打印功能的值(用于测试目的)?

根据James Johnson的正确解决方案,如下:

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

select @value = dbo.getNumber();

print @value;
go
Run Code Online (Sandbox Code Playgroud)

请注意函数调用的parens.另请注意:SMS中的intellisense强调dbo.getNumber(),就好像它是一个错误,但是使用F5运行查询并输出正确的结果.

Jam*_*son 50

你需要像这样调用它:

select @value = dbo.getNumber()
Run Code Online (Sandbox Code Playgroud)