関数およびサブルーチンをパラメーターとして使用するためのasp.netコード(VB.net)のマイグレーション。 MS Server Management Studioを使用して、上記の関数とサブルーチンを作成します。 MSページで関数をテストする前に、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()