2011-06-02 20 views
1

私はこのSQL Gen'dログイン識別子

declare @aspAccountName varchar(30); 
SET @aspAccountName=HOST_NAME() + '\ASPNET'; 

IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = @aspAccountName) 
    CREATE LOGIN (SELECT @aspAccountName) FROM WINDOWS WITH DEFAULT_DATABASE=[master] 

をやろうとしている。しかし、それは@aspAccountName 『「の近くに不正な構文』と言っ - 任意のアイデア?あなたは、動的SQLとしてCREATE LOGIN部分を書く必要があるだろう

おかげ

答えて

1

DECLARE @sql nvarchar(200) 

SET @sql = N'CREATE LOGIN ' + @aspAccountName + N' FROM WINDOWS WITH DEFAULT_DATABASE=[master]' 

EXEC sp_executesql @sql 
+0

私はそのルートを避けようとしていましたが、正しいことです。私の元の例がうまくいかない理由は何ですか? – nchaud

+0

@ahmadiyya:エラーのように、それは有効な構文ではありません。 –