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人が手を差し伸べることができれば本当に素晴らしいでしょう!
ありがとう!