• 締切済み

パスワードをsqlスクリプトで変更する

agusupです。 SQLServerパスワードをsqlスクリプトで変更する方法を教えてください。 :::::::::::::::::::::::::以下sqlスクリプトで記述します。 USE [common] GO /****** 変数の宣言    ******/ declare @PASSWORD as char(25) /****** テーブルのパスワードを変数に取込む ******/ SELECT @PASSWORD = [password] FROM [common].[dbo].[users_pass] where [ID] = 'testuser' /****** testuserのパスワードを変数@PASSWORDに変更する ******/ ALTER LOGIN [testuser] WITH password = @PASSWORD GO 以上。 この内容でユーザのパスワードを変更できると思ったのですが、 ALTER LOGINを実行すると'@PASSWORD' 付近に不適切な構文があります。というエラーメッセージが発生します。 因みに以下の内容を実行すると正常終了します。 USE [master] GO ALTER LOGIN [testuser] WITH password = 'mylogin' GO これらのことからpassword = 変数@PASSWORDをどのようにしたら実行できるのか教授願います。 宜しくお願いします

みんなの回答

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

SQL Serverでは、確かDDLに変数は使えなかったと思うけど。 試してみるなら USE [master] GO declare @PASSWORD as char(25) set @PASSWORD = 'mylogin' ALTER LOGIN [testuser] WITH password = @PASSWORD GO で確かめるべきと思います。 で、やりたいことを実行するなら ALTER LOGIN [testuser] WITH password = @PASSWORD を execute('ALTER LOGIN [testuser] WITH password = ''' + @PASSWORD + '''') にすれば動くはずです。

関連するQ&A