迁移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
注意函数调用的括号。
另请注意:SMS中的intellisense会像错误一样在dbo.getNumber()下加下划线,但是使用F5运行查询可以正常工作并输出正确的结果。
最佳答案
您需要这样称呼它:
select @value = dbo.getNumber()
关于function - 将函数结果分配给SQL变量并显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6988892/