2012年sql serevrにユーザーのテーブルがあり、ユーザーテーブルの挿入トリガーから挿入された値を使用して対応するデータベースログインユーザーを作成します。私はそれがSQL Serverトリガーから挿入された値を使用してログインを作成
が存在することを確認するために値をテストしているものの
すべては、それが作成し、ログイン手順は変数を受け入れることができない可能性があり、私が正しく挿入テーブル で参照値を使用することはできませんことを除いて、[OK]を動作するようです
ALTER TRIGGER [dbo].[addsyslogin]
ON [dbo].[Users]
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
SET QUOTED_IDENTIFIER OFF;
Declare @u varchar(10);
SELECT @u=i.userid from inserted i;
print @u;
CREATE LOGIN [@u] WITH PASSWORD='water123GH', DEFAULT_DATABASE=[waterdb], DEFAULT_LANGUAGE=[British], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
END
私はquoted_identifiersについて調査しましたが、まだこの問題があります。
実際には、データベースユーザーは、@ uの値ではなくuserid = @ uを使用して実際に作成されます。
あなたのノートをありがとうとフィードバック
はMUST手をトリガle複数の行 –
2人のユーザーを挿入すると、トリガーは1回だけ起動しますが、挿入されたテーブルには2つの行が含まれます。あなたのコードはこれを期待していません。 – Andrew
ところで、あなたは、CREATE LOGINステートメントでそのようなパラメータを使用することはできません... –