将asp.net代码(VB.net)迁移以使用函数和子程序作为参数。 使用MS Server Management Studio创建所述的函数和子程序。 希望在通过Web页面测试之前从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中打印函数的值(用于测试目的)?
根据下面的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
注意函数调用时的括号。 还要注意:SMS中的智能感知会将dbo.getNumber()下划线标记为错误,但是使用F5运行查询可正常输出结果。
Note the parens for the function invocation. Note also: intellisense in SMS underlines dbo.getNumber() as if it were an error, but running the query with F5 works and outputs the right result.