0

動的な値からテーブルを作成できますが、結合で使用するときにそのテーブルを参照できません。

DECLARE @UserName varchar(5)
DECLARE @EmpRacfid varchar(max)
SET @UserName = RIGHT(SYSTEM_USER,5)
SET @EmpTable = 'dbo.Employee_' + @UserName

CROSS JOIN @EmpTable emp

次のメッセージが表示されます。

メッセージ 1087、レベル 16、状態 1、行 19 テーブル変数「@EmpTable」を宣言する必要があります。

私もこのようなことを試みましたが、それも失敗しました:

CROSS JOIN '[dbo].[Employee_' + @UserName + ']' emp

誰かがこれをやったことがあるかどうか、またはそれが可能かどうかを知っているかどうか疑問に思っていました。

4

1 に答える 1

1

動的テーブル名を結合する場合は、スクリプト全体を動的に構築された SQL に配置し、EXEC を使用して動的 SQL 全体を実行する必要があります。次のように:


'cross join' + '[dbo].[employee_'+@UserName+'] temp' ....
于 2013-03-25T16:59:32.503 に答える