MSDE FunClub 現在までのアクセスカウント数 最終更新日 : 2000/08/11
Microsoft Data Engine FunClub
Since 2000.08.11
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻)
【第5章331p 〜 332p掲載】

-- [SQL05_07.SQL]
--             SQLServer7.0  Transact-SQL言語
--             日本技術ソフト開発  堀川 明
--            http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、
--   社員VIEW表の操作を行います。myguestユーザは全ての権限があります
--

-- ( 件処理されました)のメッセージの表示を抑止する
    SET NOCOUNT ON
GO


-- カレントデータベースを定義する
    USE MySampleTest
GO

-- ******************
--  ログイン名の調査
-- ******************
    IF( SUSER_NAME() <> 'myguest' )
      BEGIN
            PRINT 'あなた様のログイン名は ' +  SUSER_NAME() + ' です'
            PRINT 'myguestログインでログインをやり直してください'
            RAISERROR('中止します',16,127)
            RETURN
      END

-- ******************************
-- 社員VIEW表に対する操作を行う
--   全てが権限許可されます
-- ******************************
    DECLARE @MaxNo int
    SELECT @MaxNo = MAX(社員コード) FROM 社員VIEW

    SELECT 社員コード , LEFT(フリガナ,10) AS フリガナ , 
    LEFT(氏名,10) AS 氏名 FROM 社員VIEW

    --挿入前にエラーの防止上、削除します
    IF EXISTS( SELECT * FROM 社員VIEW WHERE 社員コード = 151 )
      BEGIN
            DELETE FROM 社員VIEW WHERE 社員コード = 151
      END
    
    INSERT INTO 社員VIEW(社員コード,フリガナ,氏名) 
              VALUES( 151 , 'ヤマダ タロウ' , '山田 太郎' )  --(注)半角カナです
    IF( @@ERROR = 0 )
        SELECT 社員コード , LEFT(フリガナ,10) AS フリガナ , 
               LEFT(氏名,10) AS 氏名 FROM 社員VIEW
               WHERE 社員コード = 151

    UPDATE 社員VIEW SET フリガナ = NULL WHERE 社員コード = @MaxNo
    IF( @@ERROR = 0 )
        SELECT 社員コード , LEFT(フリガナ,10) AS フリガナ , 
               LEFT(氏名,10) AS 氏名 FROM 社員VIEW
               WHERE 社員コード = @MaxNo


    DELETE FROM 社員VIEW WHERE 社員コード = @MaxNo
    IF( @@ERROR = 0 )
        BEGIN
          IF NOT EXISTS( SELECT * FROM 社員VIEW WHERE 社員コード = @MaxNo )
             PRINT '社員コード = ' + CAST(@MaxNo AS varchar) + ' を削除しました'
        END
GO




技術評論社の書籍ガイドへ
上巻:ISBN4-7741-0965-7

ウィンドウを閉じる


(株)日本技術ソフト開発 責任編集:堀川 明
MSDE FunClubに関するご意見・ご要望等ございましたら、 msdefun@horikawa.ne.jp までご連絡下さい。
HOME: http://www.horikawa.ne.jp/msde/


MSDE FunClubの運営は、マイクロソフト社とは一切の関係はありません