して動的SQLを使用し、whileループ私たちすることができますループ生徒の名前を使用して、データベースを作成し、logins.Hopeは、それはあなたに役立ちます
IF OBJECT_ID('Tempdb..#USerTable') IS NOT NULL
DROP TABLE #USerTable
IF OBJECT_ID('Tempdb..#USerNameINSERT') IS NOT NULL
DROP TABLE #USerNameINSERT
IF OBJECT_ID('Tempdb..#PasswordsINSERT') IS NOT NULL
DROP TABLE #PasswordsINSERT
--ADD Your student Names Passwords in a single line as below
DECLARE @Usernames NVARCHAR(max) = 'Stud1,Stud2,Stud3,Stud4'
,@Password NVARCHAR(max) = 'Password1,Password2,Password3,Password4'
,@Usernameselect NVARCHAR(max)
,@DatabaseNameselect NVARCHAR(max)
,@PasswordSelect NVARCHAR(max)
,@Usernameselect1 NVARCHAR(max)
,@DatabaseNameselect1 NVARCHAR(max)
,@PasswordSelect1 NVARCHAR(max)
DECLARE @USerName TABLE (
ID INT IDENTITY
,Usernames NVARCHAR(max)
,Passwords NVARCHAR(max)
)
INSERT INTO @USerName (
UserNAmes
,Passwords
)
SELECT @Usernames
,@Password
SELECT ID,UserNAmes INTO #USerNameINSERT
FRom (
SELECT Row_number()Over(Order by (SELECT NULL)) AS ID,Split.a.value('.', 'VARCHAR(1000)') AS UserNAmes
FROM (
SELECT ID, CAST('<S>' + REPLACE(UserNAmes, ',', '</S><S>') + '</S>' AS XML) AS UserNAmes
FROM @USerName
) AS A
CROSS APPLY UserNAmes.nodes('/S') AS Split(a)
)DT
SELECT ID,Passwords INTO #PasswordsINSERT
FRom (
SELECT Row_number()Over(Order by (SELECT NULL)) AS ID,Split.a.value('.', 'VARCHAR(1000)') AS Passwords
FROM (
SELECT CAST('<S>' + REPLACE(Passwords, ',', '</S><S>') + '</S>' AS XML) AS Passwords
FROM @USerName
) AS A
CROSS APPLY Passwords.nodes('/S') AS Split(a)
)DT
SELECT u.ID
,u.UserNAmes
,u.UserNAmes+'Db' AS DatabaseName
,p.Passwords
INTO #USerTable
FROM #USerNameINSERT u
INNER JOIN #PasswordsINSERT p ON p.ID = u.ID
DECLARE @minId INT
,@maxId INT
,@SqlQuery NVARCHAR(max)
,@SqlQuery1 NVARCHAR(max)
,@SqlQuery2 NVARCHAR(max)
SELECT @minId = MIN(ID)
,@maxId = Max(Id)
FROM #USerTable
WHILE (@minId <= @maxId)
BEGIN
SELECT @Usernameselect = UserNAmes
,@DatabaseNameselect = DatabaseName
,@PasswordSelect = Passwords
FROM #USerTable
WHERE ID = @minId
SET @SqlQuery = 'CREATE DATABASE ' + @DatabaseNameselect
SET @SqlQuery1 = 'USE [' + @DatabaseNameselect + ']'
SET @SqlQuery2 = 'CREATE LOGIN ' + @Usernameselect + ' WITH PASSWORD=N''' + @PasswordSelect + ''' MUST_CHANGE, CHECK_EXPIRATION=ON, CHECK_POLICY=ON'+ CHAR(13) + CHAR(10) + 'GO'
SET @SqlQuery = ISNULL('', 'GO') + CHAR(13) + CHAR(10) + @SqlQuery
+ CHAR(13) + CHAR(10) + 'GO' + CHAR(13) + CHAR(10) + @SqlQuery1
+ CHAR(13) + CHAR(10) + 'Go' + + CHAR(13) + CHAR(10) + @SqlQuery2
--EXEC (@SqlQuery)
PRINT @SqlQuery
SET @minId = @minId + 1
END
あなたが使用しようとしているものをユーザ名
?動的SQLとカーソルを使用してそれらを作成する – dbajtr
ログイン、パスワード、およびデータベース用の列を持つcsvまたはExcelシートから詳細を取り込むことができれば便利です。ユーザー名はログイン名と同じです。 – Defroster
次に、CREATE USERコマンドに関連してpowershellを使用します。 –