迁移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中打印函数的值(用于测试目的)?
根据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
请注意函数调用的parens。 另请注意:SMS中的intellisense强调dbo.getNumber(),就好像它是一个错误,但是使用F5运行查询并输出正确的结果。
答案 0 :(得分:46)
你需要这样称呼它:
select @value = dbo.getNumber()