0

Visual Studio プログラム (vb.net) 用に、SQL サーバー データベースからユーザー固有のデータを取得する手順が必要です。工場の労働者は、自分のタイムテーブルだけを見るべきです。Workers_ID と名前を含むテーブルがあります (名前は、ドメイン内の Windows ユーザー名と同じです。秘書が別のフロントエンドを介して入力しました)。アイデアは、(SUSER_NAME に応じて) Workers_ID を提供するパラメーター ストアド プロシージャを記述し、この Workers_ID で他のテーブルを選択できるようにすることです (これは他のテーブルの外部キーであるため)。これが私のコードです:


CREATE PROCEDURE USERTAB as
DECLARE @TEMPUSER_ID as int
declare @MyDomainLogin varchar(30)

Suser_Name gives me the Domain\Username. I cut the "Domain\" part off, since i dont need it.

BEGIN
SET @MyDomainlogin = SUSER_NAME()
SET @MyDomainLogin = SUBSTRING(@MyDomainLogin,CHARINDEX('\',@MyDomainLogin) + 1,30) 

SELECT @TEMPUSER_ID = Workers_ID FROM Workers
WHERE Name = @MyDomainLogin
SELECT * FROM TimeTable
WHERE Workers_ID = @TEMPUSER_ID
END

exec USERTAB

結果は私に正しいテーブルを与えますが、エラーメッセージが表示されるまで何度も何度も:

Msg 217, Level 16, State 1, Procedure USERTAB, Line 14

ストアド プロシージャ、関数、トリガー、またはビューの最大ネスト レベルを超えました (制限 32)。

私が知らない引き金のように見えます...あなたの1人が手を差し伸べることができれば本当に素晴らしいでしょう!

ありがとう!

4

1 に答える 1