2011-08-08 50 views
15

迁移asp.net代码(VB.net)以使用函数和子例程作为参数。 使用MS Server Management Studio创建所述功能和子目录。 想在通过网页测试之前从MS SMS内测试功能。 下面是一个例子。说我有一个名为“dbo.getNumber”将函数结果分配给SQL变量并显示

我尝试使用,以测试其功能如下:

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 

注意的函数调用的括号。 另请注意:SMS中的智能感知强调了dbo.getNumber(),就好像它是一个错误,但通过F5运行查询并输出正确的结果。

回答

35

你需要调用它像这样:

select @value = dbo.getNumber() 
+0

就是这样。该死的。 (不能再接受这个7分钟,但我会)。不管我做了什么,我都对它被强调为好像是错误的事实感到有点困惑。谢谢! – elbillaf

+0

很高兴工作。感谢你选择它作为答案:) –

+0

+1希望我让你的一天! – Mukus

相关问题