我在sql serevr 2012中有一個用戶表,並且希望使用來自用戶表上插入觸發器的插入值創建相應的數據庫登錄用戶。SQL Server使用觸發器中插入的值創建登錄
一切似乎工作,只是我無法正常inserted表 使用的參考價值確定,雖然我已經測試值,以確保它的存在
是有可能的是,創建登錄過程不能接受變量
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,但我仍然有這個問題。
會發生什麼情況是數據庫用戶實際上是使用userid = @ u而不是@u中的值創建的。
感謝您的筆記和反饋
觸發器都要上交le多行 – 2012-04-12 09:55:58
就像一個註釋 - 如果你插入2個用戶,觸發器將只觸發一次,但插入的表將包含2行。你的代碼不期待這個。 – Andrew 2012-04-12 09:56:34
順便說一句,你不能在CREATE LOGIN語句中使用這樣的參數... – 2012-04-12 09:58:43