1. ホーム
  2. sql-server

[解決済み】SQL Serverログインがすでに存在するかどうかを確認する

2022-04-16 13:50:25

質問

特定のログインがSQL Serverにすでに存在するかどうかをチェックし、存在しない場合は追加する必要があります。

実際にログインをデータベースに追加する次のコードを見つけましたが、私はこれをIF文に包んで(何とか)最初にログインが存在するかどうかをチェックしたいのです。

CREATE LOGIN [myUsername] WITH PASSWORD=N'myPassword', 
DEFAULT_LANGUAGE=[us_english], 
CHECK_EXPIRATION=OFF, 
CHECK_POLICY=OFF 
GO

システムデータベースを照会する必要があることは分かったが、何から始めればいいのか分からない。

解決方法は?

から こちら

If not Exists (select loginname from master.dbo.syslogins 
    where name = @loginName and dbname = 'PUBS')
Begin
    Select @SqlStatement = 'CREATE LOGIN ' + QUOTENAME(@loginName) + ' 
    FROM WINDOWS WITH DEFAULT_DATABASE=[PUBS], DEFAULT_LANGUAGE=[us_english]')

    EXEC sp_executesql @SqlStatement
End