| 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