/* @(#) generic/localization/scripts/deckanji/installjpubs 155.1 11/10/94 */ /* Has primary and foreign keys, plus text and image tables*/ /* primary と foreign キー使用, text と image テーブルの追加 */ set nocount on if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin drop database jpubs end go print 'データベース "jpubs" を作成しています。' create database jpubs go set dateformat mdy go use jpubs go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin execute sp_addtype id, "varchar(11)", "not null" execute sp_addtype tid, "varchar(6)", "not null" end go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 著者 (著者コード id not null, 姓名 varchar(40) not null, せいめい varchar(60) not null, 名前 varchar(20) not null, なまえ varchar(30) not null, 電話 char(17) not null, 住所 varchar(40) null, じゅうしょ varchar(60) null, 市区町村 varchar(20) null, しくちょうそん varchar(30) null, 都道府県 varchar(20) null, とどうふけん varchar(30) null, country varchar(12) null, 国籍 varchar(12) null, 郵便番号 char(10) null) end go grant select on 著者 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 出版者 (出版コード char(4) not null, 出版元 varchar(40) null, しゅっぱんもと varchar(60) null, 市区町村 varchar(20) null, しくちょうそん varchar(30) null, 都道府県 varchar(20) null, とどうふけん varchar(30) null) end go grant select on 出版者 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 著作権料 (タイトルコード tid not null, 下限値 int null, 上限値 int null, 印税 int null) end go grant select on 著作権料 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 販売 (店コード char(4) not null, 注文番号 varchar(20) not null, 日付 datetime not null) end go grant select on 販売 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 販売詳細 (店コード char(4) not null, 注文番号 varchar(20) not null, タイトルコード tid not null, 数量 smallint not null, 割引率 float not null) end go grant select on 販売詳細 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 著者タイトル (著者コード id not null, タイトルコード tid not null, 著者等級 tinyint null, 印税率 int null) end go grant select on 著者タイトル to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table タイトル (タイトルコード tid not null, 題名 varchar(80) not null, 種別 char(12) not null, 出版コード char(4) null, 価格 money null, 前払い money null, 総販売 int null, 内容 varchar(200) null, 出版日 datetime not null, 契約 bit not null ) end go grant select on タイトル to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 店舗 (店コード char(4) not null, 店名 varchar(40) null, てんめい varchar(60) null, 店住所 varchar(40) null, みせじゅうしょ varchar(60) null, 市区町村 varchar(20) null, しくちょうそん varchar(30) null, 都道府県 varchar(20) null, とどうふけん varchar(30) null, 国籍 varchar(12) null, country varchar(12) null, 郵便番号 char(10) null, 支払期間 varchar(12) null) end go grant select on 店舗 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 割引 (割引種別 varchar(40) not null, 店コード char(4) null, 下限量 smallint null, 上限量 smallint null, 割引率 float not null) end go grant select on 割引 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 著者肖像 (著者コード char(11) not null, 写真 image null, データ形式 char(11) null, バイトサイズ int null, 縦画素数 char(14) null, 横画素数 char(14) null) end go grant select on 著者肖像 to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin create table 宣伝 (著者コード id not null, コピー text null) end go grant select on 宣伝 to public go execute sp_primarykey タイトル, タイトルコード execute sp_primarykey 著者タイトル, 著者コード, タイトルコード execute sp_primarykey 著者, 著者コード execute sp_primarykey 出版者, 出版コード execute sp_primarykey 著作権料, タイトルコード execute sp_primarykey 販売, 店コード, 注文番号 execute sp_primarykey 販売詳細, 店コード, 注文番号 execute sp_primarykey 店舗, 店コード execute sp_primarykey 割引, 割引種別, 店コード /* problem? 問題? */ execute sp_primarykey 著者肖像, 著者コード execute sp_primarykey 宣伝, 著者コード go execute sp_foreignkey 著者タイトル, タイトル, タイトルコード execute sp_foreignkey 著者タイトル, 著者, 著者コード execute sp_foreignkey 著作権料, タイトル, タイトルコード execute sp_foreignkey 販売, 店舗, 店コード execute sp_foreignkey 販売詳細, タイトル, タイトルコード execute sp_foreignkey 販売詳細, 販売, 店コード, 注文番号 execute sp_foreignkey タイトル, 出版者, 出版コード execute sp_foreignkey 割引, 店舗, 店コード execute sp_foreignkey 著者肖像, 著者, 著者コード execute sp_foreignkey 宣伝, 著者, 著者コード go create unique clustered index 出版見出 on 出版者 (出版コード) go create unique clustered index 著者コード見出 on 著者 (著者コード) go create nonclustered index 著者名見出 on 著者 (姓名, 名前) go create unique clustered index タイトルコード見出 on タイトル (タイトルコード) go create nonclustered index タイトル見出 on タイトル (題名) go create unique clustered index 著者タイトル見出 on 著者タイトル (著者コード, タイトルコード) go create nonclustered index 著者コード見出 on 著者タイトル (著者コード) go create nonclustered index タイトルコード見出 on 著者タイトル (タイトルコード) go create unique clustered index 販売見出 on 販売 (店コード, 注文番号) go create nonclustered index タイトルコード見出 on 販売詳細 (タイトルコード) go create nonclustered index 販売詳細見出 on 販売詳細 (店コード, 注文番号) go create nonclustered index タイトルコード見出 on 著作権料 (タイトルコード) go create default デフォルト種別 as "未定" go sp_bindefault デフォルト種別, "タイトル.種別" go create default デフォルト日付 as getdate() go sp_bindefault デフォルト日付, "タイトル.出版日" go create default デフォルト電話 as "不明" go sp_bindefault デフォルト電話, "著者.電話" go insert 著者 values("409-56-7008", "石腹", "いしはら", "慎太郎", "しんたろう", "03-3508-0727", "東京都世田谷区太陽ケ丘1−12−6", "とうきょうとせたがやくたいようがおか", "世田谷区", "せたがやく", "東京都", "とうきょうと", "Japan", "日本", "104") go insert 著者 values("409-56-9004", "完全エンジニアリング", "かんぜんえんじにありんぐ", "株式会社", "かぶしきがいしゃ", "044-193-3323", "西山市幸区堀川町16−2", "にしやましさいわいくほりかわちょう", "西山市", "にしやまし", "神奈川県", "かながわけん", "Japan", "日本", "210") go insert 著者 values("213-46-8915", "吉広", "よしひろ", "記代子", "きよこ", "0424-36-2882", "神奈川県葉山町2−3−6", "かながわけんはやまちょう", "葉山町", "はやまちょう", "神奈川県", "かながわけん", "Japan", "日本", "241") go insert 著者 values("238-95-7766", "荒又", "あらまた", "宏", "ひろし", "03-3773-2366", "東京都大田区山王町2−112", "とうきょうとおおたくさんのうちょう", "大田区", "おおたく", "東京都", "とうきょうと", "Japan", "日本", "102") go insert 著者 values("998-72-3567", "奥谷", "おくたに", "喬", "たかし", "045-473-1976", "神奈川県横浜市港北区新横浜2−2−10", "かながわけんよこはましこうほくくしんよこはま", "横浜市", "よこはまし", "神奈川県", "かながわけん", "Japan", "日本", "222") go insert 著者 values("899-46-2035", "堀", "ほり", "純一", "じゅんいち", "0473-23-1234", "埼玉県浦和市堀之内1−2−4", "さいたまけんうらわしほりのうち", "浦和市", "うらわし", "埼玉県", "さいたまけん", "Japan", "日本", "264") go insert 著者 values("722-51-5454", "ファーブル", "ふぁーぶる", "J.−H", "じぇーえっち", "未定", "死去", NULL, NULL, NULL, NULL, NULL, "France", "フランス", NULL) go insert 著者 values("807-91-6654", "奥本", "おくもと", "大三郎", "だいざぶろう", "03-3868-4799", "東京都世田谷区烏山1−6−9", "とうきょうとせたがやくからすやま", "世田谷区", "せたがやく", "東京都", "とうきょうと", "Japan", "日本", "104") go insert 著者 values("893-72-1158", "森田", "もりた", "昭夫", "あきお", "0433-26-4354", "神奈川県鎌倉市由比浜12-6", "かながわけんかまくらしゆいがはま", "鎌倉市", "かまくらし", "神奈川県", "かながわけん", "Japan", "日本", "236") go insert 著者 values("724-08-9931", "宮崎", "みやざき", "正弘", "まさひろ", "0423-37-2332", "東京都青梅市羽村3−4−1", "とうきょうとおうめしはむら", "青梅市", "おうめし", "東京都", "とうきょうと", "Japan", "日本", "256") go insert 著者 values("274-80-9391", "木村", "きむら", "政秋", "まさあき", "0988-23-1198", "沖縄県那覇市那覇2−345", "おきなわけんなはし", "那覇市", "なはし", "沖縄県", "おきなわけん", "Japan", "日本", "996") go insert 著者 values("756-30-7391", "ジェサップ", "じぇさっぷ", "モーリス", "もーりす", "415-658-9932", "6223 Bateman St. Berkeley CA", "かるふぉるにあしゅうばーくれい", "Berkeley", "ばーくれい", "CA", "かるふぉるにあ", "USA", "アメリカ", "94705") go insert 著者 values("724-80-9391", "加藤", "かとう", "正弘", "まさひろ", "044-544-2331", "神奈川県川崎市高津区高津234−2", "かながわけんかわさきしたかつくたかつ", "川崎市", "かわさきし", "神奈川県", "かながわけん", "Japan", "日本", "211") go insert 著者 values("427-17-2319", "幸田", "こうだ", "康年", "やすとし", "0862-12-1234", "岡山県岡山市城山2−3", "おかやまけんおかやまししろやま", "岡山市", "おかやまし", "岡山県", "おかやまけん", "Japan", "日本", "629") go insert 著者 values("672-71-3249", "大月", "おおつき", "義彦", "よしひこ", "0428-21-3457", "東京都府中市競馬場231", "とうきょうとふちゅうしけいばじょう", "府中市", "ふちゅうし", "東京都", "とうきょうと", "Japan", "日本", "183") go insert 著者 values("267-41-2394", "トフラー", "とふらー", "アルビン", "あるびん", "212-355-9856", "350 Park Avenue New York, NY", "にゅーよーくしゅうにゅーよーく", "New York", "にゅーよーく", "NY", "にゅーよーく", "USA", "アメリカ", "10022") go insert 著者 values("472-27-2349", "徳山", "とくやま", "次郎", "じろう", "03-3503-4753", "東京都台東区東上野3−13−1", "とうきょうとたいとうくひがしうえの", "台東区", "たいとうく", "東京都", "とうきょうと", "Japan", "日本", "110") go insert 著者 values("527-72-3246", "寺丘", "てらおか", "バーバラ", "ばーばら", "03-3241-1049", "東京都中央区日本橋4−7−15", "とうきょうとちゅうおうくにほんばし", "中央区", "ちゅうおうく", "東京都", "とうきょうと", "Japan", "日本", "103") go insert 著者 values("172-32-1176", "多賀", "たが", "美紀子", "みきこ", "022-398-0412", "宮城県仙台市青葉山2−6−1", "みやぎけんせんだいしあおばやま", "仙台市", "せんだいし", "宮城県", "みやぎけん", "Japan", "日本", "981") go insert 著者 values("712-45-1867", "カイリー", "かいりー", "ダン", "だん", "415-938-6445", "5420 College Av. Oakland CA", "かるふぉるにあしゅうおーくらんど", "Oakland", "おーくらんど", "CA", "かるふぉるにあ", "USA", "アメリカ", "95428") go insert 著者 values("846-92-7186", "小曳", "こひき", "敬吾", "けいご", "0426-22-1346", "東京都八王子市寺町60−1", "とうきょうとはちおうじしてらまち", "八王子市", "はちおうじし", "東京都", "とうきょうと", "Japan", "日本", "135") go insert 著者 values("486-29-1786", "クリスティー", "くりすてぃー", "アガサ", "あがさ", "未定", "死去", NULL, NULL, NULL, NULL, NULL, "England", "イギリス", NULL) go insert 著者 values("648-92-1872", "村松", "むらまつ", "定敬", "さだたか", "0196-25-9845", "岩手県盛岡市中央1−9−16", "いわてけんもりおかしちゅうおう", "盛岡市", "もりおかし", "岩手県", "いわてけん", "Japan", "日本", "020") go insert 出版者 values("1389", "工文社出版局", "こうぶんしゃしゅっぱんきょく", "文京区", "ぶんきょうく", "東京都", "とうきょうと") go insert 出版者 values("0736", "世界文化社", "せかいぶんかしゃ", "新宿区", "しんじゅくく", "東京都", "とうきょうと") go insert 出版者 values("0877", "徳真書店", "とくましょてん", "港区", "みなとく", "東京都", "とうきょうと") go insert 出版者 values("1622", "たま出版", "たましゅっぱん", "日野市", "ひのし", "東京都", "とうきょうと") go insert 出版者 values("1756", "青春出版社", "せいしゅんしゅっぱんしゃ", "千代田区", "ちよだく", "東京都", "とうきょうと") go insert 出版者 values("9987", "フジラジオ出版", "ふじらじおしゅっぱん", "港区", "みなとく", "東京都", "とうきょうと") go insert 出版者 values("9911", "詳伝社", "しょうでんしゃ", "川崎市", "かわさきし", "神奈川県", "かながわけん") go insert 出版者 values("9934", "速川書房", "はやかわしょぼう", "渋谷区", "しぶやく", "東京都", "とうきょうと") go insert 出版者 values("9952", "秋田書店", "あきたしょてん", "秋田市", "あきたし", "秋田県", "あきたけん") go insert 出版者 values("9922", "平盆社", "へいぼんしゃ", "千代田区", "ちよだく", "東京都", "とうきょうと") go insert 出版者 values("9964", "購談社", "こうだんしゃ", "渋谷区", "しぶやく", "東京都", "とうきょうと") go insert 出版者 values("9977", "築麻書房", "ちくましょぼう", "文京区", "ぶんきょうく", "東京都", "とうきょうと") go insert 著作権料 values("BU1349", 0, 5000, 10) go insert 著作権料 values("BU1349", 5001, 50000, 12) go insert 著作権料 values("BU1360", 0, 2000, 10) go insert 著作権料 values("BU1360", 2001, 3000, 12) go insert 著作権料 values("BU1360", 3001, 4000, 14) go insert 著作権料 values("BU1360", 4001, 10000, 16) go insert 著作権料 values("BU1360", 10001, 50000, 18) go insert 著作権料 values("PC3250", 0, 1000, 10) go insert 著作権料 values("PC3250", 1001, 3000, 12) go insert 著作権料 values("PC3250", 3001, 5000, 14) go insert 著作権料 values("PC3250", 5001, 7000, 16) go insert 著作権料 values("PC3250", 7001, 10000, 18) go insert 著作権料 values("PC3250", 10001, 12000, 20) go insert 著作権料 values("PC3250", 12001, 14000, 22) go insert 著作権料 values("PC3250", 14001, 50000, 24) go insert 著作権料 values("PC3256", 0, 1000, 10) go insert 著作権料 values("PC3256", 1001, 5000, 12) go insert 著作権料 values("PC3256", 5001, 10000, 14) go insert 著作権料 values("PC3256", 10001, 50000, 16) go insert 著作権料 values("PC3389", 0, 2000, 10) go insert 著作権料 values("PC3389", 2001, 5000, 12) go insert 著作権料 values("PC3389", 5001, 10000, 14) go insert 著作権料 values("PC3389", 10001, 50000, 16) go insert 著作権料 values("PC3679", 0, 1000, 10) go insert 著作権料 values("PC3679", 1001, 2000, 12) go insert 著作権料 values("PC3679", 2001, 4000, 14) go insert 著作権料 values("PC3679", 4001, 6000, 16) go insert 著作権料 values("PC3679", 6001, 8000, 18) go insert 著作権料 values("PC3679", 8001, 10000, 20) go insert 著作権料 values("PC3679", 10001, 12000, 22) go insert 著作権料 values("PC3679", 12001, 50000, 24) go insert 著作権料 values("PC1363", 0, 2000, 10) go insert 著作権料 values("PC1363", 2001, 4000, 12) go insert 著作権料 values("PC1363", 4001, 6000, 14) go insert 著作権料 values("PC1363", 6001, 8000, 16) go insert 著作権料 values("PC1363", 8001, 10000, 18) go insert 著作権料 values("PC1363", 10001, 12000, 20) go insert 著作権料 values("PC1363", 12001, 14000, 22) go insert 著作権料 values("PC1363", 14001, 50000, 24) go insert 著作権料 values("MC0738", 0, 5000, 10) go insert 著作権料 values("MC0738", 5001, 10000, 12) go insert 著作権料 values("MC0738", 10001, 15000, 14) go insert 著作権料 values("MC0738", 15001, 50000, 16) go insert 著作権料 values("BU9196", 0, 5000, 10) go insert 著作権料 values("BU9196", 5001, 50000, 12) go insert 著作権料 values("BU9185", 0, 5000, 10) go insert 著作権料 values("BU9185", 5001, 10000, 12) go insert 著作権料 values("BU9185", 10001, 15000, 14) go insert 著作権料 values("BU9185", 15001, 50000, 16) go insert 著作権料 values("MC2836", 0, 4000, 10) go insert 著作権料 values("MC2836", 4001, 8000, 12) go insert 著作権料 values("MC2836", 8001, 12000, 14) go insert 著作権料 values("MC2836", 12001, 16000, 16) go insert 著作権料 values("MC2836", 16001, 20000, 18) go insert 著作権料 values("MC2836", 20001, 24000, 20) go insert 著作権料 values("MC2836", 24001, 28000, 22) go insert 著作権料 values("MC2836", 28001, 50000, 24) go insert 著作権料 values("GL1331", 0, 2000, 10) go insert 著作権料 values("GL1331", 2001, 4000, 12) go insert 著作権料 values("GL1331", 4001, 8000, 14) go insert 著作権料 values("GL1331", 8001, 12000, 16) go insert 著作権料 values("GL1331", 8001, 12000, 16) go insert 著作権料 values("GL1331", 12001, 20000, 18) go insert 著作権料 values("GL1331", 20001, 50000, 20) go insert 著作権料 values("PS2089", 0, 5000, 10) go insert 著作権料 values("PS2089", 5001, 15000, 12) go insert 著作権料 values("PS2089", 15001, 50000, 14) go insert 著作権料 values("MS4021", 0, 2000, 10) go insert 著作権料 values("MS4021", 2001, 8000, 12) go insert 著作権料 values("MS4021", 8001, 16000, 14) go insert 著作権料 values("MS4021", 16001, 24000, 16) go insert 著作権料 values("MS4021", 24001, 32000, 18) go insert 著作権料 values("MS4021", 32001, 40000, 20) go insert 著作権料 values("MS4021", 40001, 50000, 22) go insert 著作権料 values("TD2365", 0, 5000, 10) go insert 著作権料 values("TD2365", 5001, 10000, 12) go insert 著作権料 values("TD2365", 10001, 15000, 14) go insert 著作権料 values("TD2365", 15001, 20000, 16) go insert 著作権料 values("TD2365", 20001, 25000, 18) go insert 著作権料 values("TD2365", 25001, 30000, 20) go insert 著作権料 values("TD2365", 30001, 35000, 22) go insert 著作権料 values("TD2365", 35001, 50000, 24) go insert 著作権料 values("PC3856", 0, 10000, 10) go insert 著作権料 values("PC3856", 10001, 20000, 12) go insert 著作権料 values("PC3856", 20001, 30000, 14) go insert 著作権料 values("PC3856", 30001, 40000, 16) go insert 著作権料 values("PC3856", 40001, 50000, 18) go insert 著作権料 values("MP9231", 0, 5000, 10) go insert 著作権料 values("MP9231", 5001, 15000, 12) go insert 著作権料 values("MP9231", 15001, 50000, 14) go insert 著作権料 values("PC3100", 0, 5000, 10) go insert 著作権料 values("PC3100", 5001, 15000, 12) go insert 著作権料 values("PC3100", 15001, 50000, 14) go insert 販売 values("7066", "QA7442.3", "1990/11/13") go insert 販売 values("7072", "D4482", "1990/12/04") go insert 販売 values("7078", "N914008", "1990/12/12") go insert 販売 values("7078", "N914014", "1991/01/07") go insert 販売 values("6032", "423LL922", "1991/02/04") go insert 販売 values("6032", "423LL930", "1991/03/08") go insert 販売 values("8029", "722a", "1991/07/03") go insert 販売 values("8029", "6871", "1991/07/04") go insert 販売 values("7078", "P723", "1991/07/12") go insert 販売 values("7298", "X999", "1991/07/12") go insert 販売 values("7298", "QQ2299", "1991/07/13") go insert 販売 values("7298", "TQ456", "1991/07/15") go insert 販売 values("7078", "QA879.1", "1991/07/15") go insert 販売 values("7066", "A2976", "1991/07/16") go insert 販売 values("7896", "P3087a.1", "1991/07/17") go insert 販売 values("7896", "P3087a.2", "1991/07/17") go insert 販売 values("7896", "P3087a.3", "1991/07/17") go insert 販売 values("7896", "P3087a.4", "1991/07/17") go insert 販売 values("7072", "P2121.1", "1991/07/18") go insert 販売 values("7072", "P2121.2", "1991/07/18") go insert 販売 values("7072", "P2121.3", "1991/07/18") go insert 販売 values("6032", "423LL942.1", "1991/08/02") go insert 販売 values("6032", "423LL942.2", "1991/08/02") go insert 販売 values("6032", "423LL942.3", "1991/08/02") go insert 販売 values("6032", "423LL942.4", "1991/08/02") go insert 販売 values("7078", "QB567.1", "1991/08/05") go insert 販売 values("7078", "QB567.2", "1991/08/05") go insert 販売 values("8029", "8765", "1991/08/07") go insert 販売 values("6032", "423LL945.1", "1991/08/08") go insert 販売 values("6032", "423LL945.2", "1991/08/08") go insert 販売詳細 values("7066", "QA7442.3", "PC1363", 50, 3) go insert 販売詳細 values("7066", "QA7442.3", "MC0738", 10, 3) go insert 販売詳細 values("7066", "QA7442.3", "PS2089", 30, 3) go insert 販売詳細 values("7072", "D4482", "MC0738", 5, 5) go insert 販売詳細 values("7072", "D4482", "PC1363", 20, 5) go insert 販売詳細 values("7072", "D4482", "PS2089", 20, 5) go insert 販売詳細 values("7072", "D4482", "PC3856", 5, 5) go insert 販売詳細 values("7072", "D4482", "MS4021", 15, 10) go insert 販売詳細 values("7072", "D4482", "DC1437", 15, 5) go insert 販売詳細 values("7078", "N914008", "BU9196", 2000, 10) go insert 販売詳細 values("7078", "N914008", "MC0738", 5, 3) go insert 販売詳細 values("7078", "N914008", "PC1363", 20, 5) go insert 販売詳細 values("7078", "N914008", "PS2089", 30, 5) go insert 販売詳細 values("7078", "N914008", "PC3856", 30, 5) go insert 販売詳細 values("7078", "N914008", "MS4021", 20, 5) go insert 販売詳細 values("7078", "N914014", "BU1349", 30, 5) go insert 販売詳細 values("7078", "N914014", "BU1360", 30, 5) go insert 販売詳細 values("7078", "N914014", "PC3100", 30, 5) go insert 販売詳細 values("7078", "N914014", "BU9185", 30, 5) go insert 販売詳細 values("7078", "N914014", "MC2836", 30, 5) go insert 販売詳細 values("7078", "N914014", "TD2365", 10, 3) go insert 販売詳細 values("6032", "423LL922", "DC1437", 5, 3) go insert 販売詳細 values("6032", "423LL922", "PC3100", 20, 5) go insert 販売詳細 values("6032", "423LL922", "MP9231", 20, 3) go insert 販売詳細 values("6032", "423LL922", "MC2836", 20, 5) go insert 販売詳細 values("6032", "423LL922", "GL1331", 20, 3) go insert 販売詳細 values("6032", "423LL930", "PS2089", 2, 3) go insert 販売詳細 values("6032", "423LL930", "PC3250", 20, 5) go insert 販売詳細 values("6032", "423LL930", "PC3256", 20, 3) go insert 販売詳細 values("6032", "423LL930", "BU1360", 10, 3) go insert 販売詳細 values("6032", "423LL930", "PC3679", 10, 3) go insert 販売詳細 values("6032", "423LL930", "TD2365", 5, 3) go insert 販売詳細 values("6032", "423LL930", "PC3856", 5, 3) go insert 販売詳細 values("8029", "722a", "PC3679", 10, 3) go insert 販売詳細 values("8029", "722a", "MS4021", 20, 3) go insert 販売詳細 values("8029", "722a", "DC1437", 20, 3) go insert 販売詳細 values("8029", "722a", "MP9231", 10, 3) go insert 販売詳細 values("8029", "722a", "BU1360", 10, 3) go insert 販売詳細 values("8029", "6871", "BU1349", 30, 5) go insert 販売詳細 values("8029", "6871", "BU9196", 200, 10) go insert 販売詳細 values("8029", "6871", "PC1363", 30, 5) go insert 販売詳細 values("8029", "6871", "MC0738", 2, 3) go insert 販売詳細 values("8029", "6871", "BU9235", 80, 10) go insert 販売詳細 values("8029", "6871", "PS2089", 3, 3) go insert 販売詳細 values("7078", "P723", "PC3856", 8, 3) go insert 販売詳細 values("7078", "P723", "BU1349", 40, 5) go insert 販売詳細 values("7078", "P723", "PC3100", 20, 3) go insert 販売詳細 values("7078", "P723", "MP9231", 20, 3) go insert 販売詳細 values("7078", "P723", "TD2365", 10, 3) go insert 販売詳細 values("7078", "P723", "MS4021", 80, 10) go insert 販売詳細 values("7298", "X999", "PC3679", 10, 3) go insert 販売詳細 values("7298", "X999", "GL1331", 5, 3) go insert 販売詳細 values("7298", "X999", "PC3256", 10, 3) go insert 販売詳細 values("7298", "X999", "PC3389", 10, 3) go insert 販売詳細 values("7298", "X999", "PC3100", 10, 3) go insert 販売詳細 values("7298", "X999", "PC3856", 10, 3) go insert 販売詳細 values("7298", "X999", "DC1437", 10, 3) go insert 販売詳細 values("7298", "QQ2299", "DC1437", 30, 5) go insert 販売詳細 values("7298", "QQ2299", "GL1331", 10, 3) go insert 販売詳細 values("7298", "QQ2299", "PC3100", 30, 5) go insert 販売詳細 values("7298", "QQ2299", "BU1349", 30, 5) go insert 販売詳細 values("7298", "QQ2299", "BU1360", 30, 5) go insert 販売詳細 values("7298", "QQ2299", "PC3679", 10, 3) go insert 販売詳細 values("7298", "QQ2299", "MP9231", 5, 3) go insert 販売詳細 values("7298", "TQ456", "PS2089", 2, 3) go insert 販売詳細 values("7298", "TQ456", "MC2836", 20, 5) go insert 販売詳細 values("7298", "TQ456", "BU9285", 40, 3) go insert 販売詳細 values("7298", "TQ456", "PC1363", 1, 3) go insert 販売詳細 values("7298", "TQ456", "MC0738", 2, 3) go insert 販売詳細 values("7298", "TQ456", "PC3256", 5, 3) go insert 販売詳細 values("7078", "QA879.1", "BU1349", 20, 5) go insert 販売詳細 values("7078", "QA879.1", "MP9231", 20, 5) go insert 販売詳細 values("7078", "QA879.1", "PC3100", 20, 5) go insert 販売詳細 values("7078", "QA879.1", "PC3856", 5, 3) go insert 販売詳細 values("7078", "QA879.1", "PC3389", 20, 5) go insert 販売詳細 values("7078", "QA879.1", "PC3256", 10, 3) go insert 販売詳細 values("7066", "A2976", "TD2365", 5, 3) go insert 販売詳細 values("7066", "A2976", "BU1349", 5, 3) go insert 販売詳細 values("7066", "A2976", "BU9196", 100, 10) go insert 販売詳細 values("7066", "A2976", "BU9185", 5, 3) go insert 販売詳細 values("7066", "A2976", "MC2836", 30, 5) go insert 販売詳細 values("7066", "A2976", "DC1437", 5, 3) go insert 販売詳細 values("7896", "P3087a.1", "BU1360", 5, 3) go insert 販売詳細 values("7896", "P3087a.2", "MP9231", 3, 3) go insert 販売詳細 values("7896", "P3087a.2", "GL1331", 5, 3) go insert 販売詳細 values("7896", "P3087a.2", "PS2089", 3, 3) go insert 販売詳細 values("7896", "P3087a.3", "TD2365", 5, 3) go insert 販売詳細 values("7896", "P3087a.3", "PC3856", 5, 3) go insert 販売詳細 values("7896", "P3087a.3", "PC3100", 10, 3) go insert 販売詳細 values("7896", "P3087a.4", "MS4021", 7, 3) go insert 販売詳細 values("7072", "P2121.1", "PC3250", 5, 3) go insert 販売詳細 values("7072", "P2121.1", "BU1349", 5, 3) go insert 販売詳細 values("7072", "P2121.1", "PC3679", 5, 3) go insert 販売詳細 values("7072", "P2121.2", "PC3389", 3, 3) go insert 販売詳細 values("7072", "P2121.3", "BU9185", 3, 3) go insert 販売詳細 values("6032", "423LL942.1", "PS2089", 2, 3) go insert 販売詳細 values("6032", "423LL942.1", "PS3256", 10, 3) go insert 販売詳細 values("6032", "423LL942.2", "BU9196", 50, 7) go insert 販売詳細 values("6032", "423LL942.3", "PC3100", 20, 5) go insert 販売詳細 values("6032", "423LL942.4", "PC3856", 10, 3) go insert 販売詳細 values("6032", "423LL942.4", "DC1437", 10, 3) go insert 販売詳細 values("6032", "423LL942.4", "PC3679", 10, 3) go insert 販売詳細 values("7078", "QB567.1", "BU1349", 5, 3) go insert 販売詳細 values("7078", "QB567.1", "MC0738", 1, 3) go insert 販売詳細 values("7078", "QB567.2", "BU9185", 2, 3) go insert 販売詳細 values("7078", "QB567.2", "PC1363", 1, 3) go insert 販売詳細 values("7078", "QB567.2", "PS2089", 2, 3) go insert 販売詳細 values("8029", "8765", "BU9196", 30, 7) go insert 販売詳細 values("8029", "8765", "MP9231", 10, 3) go insert 販売詳細 values("8029", "8765", "PC3100", 20, 7) go insert 販売詳細 values("8029", "8765", "PC3256", 30, 7) go insert 販売詳細 values("8029", "8765", "BU1360", 5, 3) go insert 販売詳細 values("6032", "423LL945.1", "MC0738", 2, 3) go insert 販売詳細 values("6032", "423LL945.1", "PS2089", 2, 3) go insert 販売詳細 values("6032", "423LL945.1", "MS2365", 2, 3) go insert 販売詳細 values("6032", "423LL945.2", "BU9196", 30, 7) go insert 著者タイトル values("409-56-7008", "BU1349", 1, 50) go insert 著者タイトル values("893-72-1158", "BU1349", 2, 50) go insert 著者タイトル values("409-56-9004", "BU9196", 1, 100) go insert 著者タイトル values("238-95-7766", "DC1437", 1, 65) go insert 著者タイトル values("807-91-6654", "DC1437", 2, 35) go insert 著者タイトル values("998-72-3567", "PC3856", 1, 100) go insert 著者タイトル values("899-46-2035", "MP9231", 1, 100) go insert 著者タイトル values("724-08-9931", "PC1363", 1, 100) go insert 著者タイトル values("722-51-5454", "PC3100", 1, 30) go insert 著者タイトル values("807-91-6654", "PC3100", 2, 70) go insert 著者タイトル values("724-08-9931", "BU1360", 1, 100) go insert 著者タイトル values("274-80-9391", "PC3250", 1, 100) go insert 著者タイトル values("756-30-7391", "PC3256", 1, 70) go insert 著者タイトル values("724-80-9391", "PC3256", 2, 30) go insert 著者タイトル values("427-17-2319", "PC3389", 1, 100) go insert 著者タイトル values("672-71-3249", "PC3679", 1, 100) go insert 著者タイトル values("267-41-2394", "BU9185", 1, 70) go insert 著者タイトル values("472-27-2349", "BU9185", 2, 30) go insert 著者タイトル values("527-72-3246", "MC2836", 1, 100) go insert 著者タイトル values("172-32-1176", "GL1331", 1, 100) go insert 著者タイトル values("213-46-8915", "MC0738", 1, 100) go insert 著者タイトル values("712-45-1867", "PS2089", 1, 70) go insert 著者タイトル values("846-92-7186", "PS2089", 2, 30) go insert 著者タイトル values("486-29-1786", "MS4021", 1, 20) go insert 著者タイトル values("648-92-1872", "MS4021", 2, 80) go insert タイトル values("BU1349", "それでも「NO」と言える日本", "ビジネス", "1839", \850, \500000, 4095, "日本は星条旗の星の一つか!? ソニー森田会長と石腹慎太郎氏が共著し、米国で大反響を巻き起こした「「NO」と言える日本 」の補筆版。", "1990/05/30", 1) go insert タイトル values("BU1360", "これからの世界経済地図", "ビジネス", "0736", \1360, \400000, 8070, "バブル経済も、終焉のときを迎えたようである。日本にかぎらずアメリカでも景気後退の波は訪れている。今後の世界経済地図は、どう塗りかえられていくのか−−。ゴルバチョフの失脚が日本とドイツの株式暴落を招く。", "1991/04/18", 1) go insert タイトル values("PC3250", 'ムー大陸は琉球にあった! □深海底調査でわかった“巨大陥没”の真実', "人文", "0877", \1300, \360000, 312, "ムー大陸の伝説は、今ではスケールの大きなヨタ話だとされている。が、伝説の根拠となったムー大陸は実在し、それは現在の沖縄周辺にあった!沖縄には歴史上の謎も多く読者のロマンをかきたててくれる。", "1991/06/30", 1) go insert タイトル values("PC3256", "天文学とUFO", "科学", "1622", \1600, \120000, 702, "本書はプロの天文学者によるUFO研究書として注目すべき一冊である。宇宙で観測された不可解な現象に関心を抱き、それらがUFOの乗員と考えられる地球外知的生命の仕業ではないかと考察している。", "1991/03/10", 1) go insert タイトル values("PC3389", "サルはなぜヒトになれないのか □生物進化を考えなおす", "科学", "1839", \770, \80000, 286, "生物の進化は、偶然の生んだもので、人間を生むためにとか高等なものを目指してのものではない。人間=進化した生物という人間中心主義に、知らず知らず侵されている我々にとって、著者の考え方は新鮮である。", "1991/01/30", 1) go insert タイトル values("PC3679", "超科学で変わる人間の5年後10年後 □驚いてはいけない、これは現実だ", "科学", "1756", \750, \60000, 833, "今世紀末から来世紀にかけて人類が獲得するであろう新技術が生み出す社会を大胆に予測する。", "1991/04/01", 1) go insert タイトル values("PC1363", "第五世代コンピュータ 日本の挑戦", "ビジネス", "9987", \1600, \450000, 1342, "人間は文明を生産してきたが、これからは文明が新しい人間を創りはじめるのだろうか。日本の第五世代計画は、米国にとって自動車などとくらべものにならないくらい深刻な問題となっている。", "1983/08/01", 1) go insert タイトル values("MC0738", "カクテル教室", "料理", "9922", \580, \30000, 328, "カクテルなしでは楽しいパーティーの演出はできない時代!プロにもアマチュアにも向くカクテルの処方やマナーを網羅した一冊", "1979/06/20", 1) go insert タイトル values("BU9196", "技術屋集団が書いた「知的生産性」の高め方", "ビジネス", "9911", \1200, \20000, 7362, "「人の能力アップと組織風土活性化」という大きく深い問題に取り組んだエンジニアたちの、実践の記録である。彼らが推進した、全く新しいタイプの小集団活動とはどのようなものだったのか。そして成果は!", "1987/04/24", 1) go insert タイトル values("BU9185", "パワーシフト 上・下", "ビジネス", "9987", \1600, \120000, 4023, "これまでの世界を支えてきた権力構造のすべてが崩れつつある瞬間にいま我々は生きている。現在は権力構造が変化(シフト)しつつある時期、パワーシフトの時代なのである。", "1990/11/20", 1) go insert タイトル values("MC2836", "「41歳寿命説」を吹き飛ばす 食い改めの時代", "食文化", "0877", \760, \60000, 653, "最近話題の「41歳寿命説」(西丸震哉著)は、日本人の生活環境を「薄い毒ガスが充満した部屋にいるようなもの」と警告している。本書は絶望的ともいえる状況の中で、自らの健康を守るかがテーマとなっている。", "1990/10/31", 1) go insert タイトル values("GL1331", "その名はアメリカ大統領夫人/41の愛と野望", "一般", "0877", \1100, \40000, 859, "5年間米国で暮らした著者は、周囲の米国人が大統領夫人の発言、行動、それこそ一挙手一投足にいたるまで日常の話題にすることに驚き、歴代夫人の調査を始めて見ると、そこには興味の尽きないドラマがあった。", "1990/01/30", 1) go insert タイトル values("PS2089", "ピ−タ−・パン・シンドロ−ム □なぜ、彼らは大人になれないのか", "心理学", "9911", \1600, \30000, 898, "ピ−タ−・パンは、永遠の少年である。大人社会の仲間入りを断り、夢の国「ないない島」で暮らす。年はとるが、ピ−タ−・パンは、大人になりたくない。この心の症候群がピーター・パン・シンドロームである。", "1984/05/05", 1) go insert タイトル values("MS4021", "アガサ・クリスティー生誕100年記念ブック", "ミステリ", "9934", \1500, \20000, 412, "[ミステリの女王]アガサ・クリスティーの生誕100周年にあたる。彼女の生涯、彼女を巡る人々、創作の舞台裏、作品の完全リスト映画・演劇完全リストなど、アガサの全体像を知るには格好の一冊といえる。", "1990/11/30", 1) go insert タイトル values("TD2365", "新・日本伝説100選", "伝説", "9952", \1700, \15000, 226, '日本各地に残っている伝説は、古くから日本列島の豊かな自然の中に暮らし、独自の文化を産み育んできた人々の、生きる知恵と自然を敬う心を伝えるものである。我々に““古き良き日本”への郷愁をよびおこしてくれる。', "1990/10/25", 1) go insert タイトル values("DC1437", "世界大動物図鑑 ホ乳類", "図鑑", "9922", \20000, \30000, 412, "普通のホ乳類の分類法とはちがって、人間がトップにあらわれるところが、並の図鑑とはちがう点である。ここでは近代動物学が排除した架空動物、たとえば天狗についても詳細な記述がなされている。", "1988/05/27", 1) go insert タイトル values("PC3856", "イカはしゃべるし、空も飛ぶ", "科学", "9964", \640, \5000, 612, "イカの体の構造の特異性は、仲間である軟体動物にもみられない。これは、いかにも珍しいイカのはなしである。", "1989/10/27", 1) go insert タイトル values("MP9231", "地図のイコノロジー", "地図", "9977", \3300, \20000, 327, "ヨーロッパの古地図をめぐるこの本は、ある豊かさを漂わせて始められている。うれしくなるような地図が満載されている一冊である。", "1989/11/24", 1) go insert タイトル values("PC3100", "ファーブル昆虫記", "昆虫", "0736", \1300, \20000, 532, "小さいとき、ファーブル昆虫記をよんで、昆虫少年時代を送ったフランス文学者が、全訳ではわからなかった部分をおぎない、少年の感動にいっそう近づけようとした労作。大人が読んでも放さないかもしれない。", "1991/06/21", 0) go insert 店舗 values("7066", "友鵬堂書店", "ゆうほうどうしょてん", "東京都新宿区大久保3−2−4", "とうきょうとしんじゅくくおおくぼ", "新宿区", "しんじゅくく", "東京都", "とうきょうと", "日本", "Japan", "106", "20日") go insert 店舗 values("7072", "書選グランテ", "しょせんぐらんて", "東京都千代田区神保町1−6−20", "とうきょうとちよだくじんぼうちょう", "千代田区", "ちよだく", "東京都", "とうきょうと", "日本", "Japan", "104", "30日") go insert 店舗 values("7078", "有林堂", "ゆうりんどう", "横浜市中区伊勢崎町2−4−6", "よこはましなかくいせざきちょう", "横浜市", "よこはまし", "神奈川県", "かながわけん", "日本", "Japan", "223", "30日") go insert 店舗 values("6032", "四省堂書店", "しせいどうしょてん", "東京都千代田区神保町2−3−10", "とうきょうとちよだくじんぼうちょう", "千代田区", "ちよだく", "東京都", "とうきょうと", "日本", "Japan", "104", "30日") go insert 店舗 values("8029", "火の国屋書店", "ひのくにやしょてん", "東京都新宿区新宿3−4−11", "とうきょうとしんじゅくくしんじゅく", "新宿区", "しんじゅくく", "東京都", "とうきょうと", "日本", "Japan", "106", "30日") go insert 店舗 values("7896", "八重巣ブック書店", "やえすぶっくしょてん", "東京都中央区八重洲6−5−7", "とうきょうとちゅうおうくやえす", "中央区", "ちゅうおうく", "東京都", "とうきょうと", "日本", "Japan", "104", "30日") go insert 店舗 values("7298", "角善書店", "かくぜんしょてん", "東京都港区西新橋1−12−8", "とうきょうとみなとくにししんばし", "港区", "みなとく", "東京都", "とうきょうと", "日本", "Japan", "105", "20日") go insert 割引 values("新規特別割引", NULL, NULL, NULL, 10.5) go insert 割引 values("大口特別割引", "7072", 100, 1000, 6.7) go insert 割引 values("得意特別割引", "7078", NULL, NULL, 5) go insert 割引 values("得意キャンペーン特別割引", "7298", NULL, NULL, 3) go insert 宣伝 values("409-56-7008", "昭和7年9月30日神戸生まれ。湘南中学・湘南高校を卒業し一橋大学入学。 昭和30年、第2作「太陽の季節」を発表、翌31年に第34回芥川賞を受賞。 同年大学卒業とともに作家生活に入る。昭和43年に参議院選挙全国区に立候補、 当選。積極的な政治活動で知られる。俳優の石腹夕次郎は彼の実弟である。") insert 宣伝 values("274-80-9391", "琉球大学助教授。専攻は海洋地質学。三宅島や三原山の爆発、さらに雲仙岳の 溶岩流出を予言して世の注目を集めた。伝説の根拠となったムー大陸は実在し、 それは現在の沖縄周辺にあったと主張する学者でもある。") insert 宣伝 values("998-72-3567", "イカ博士と呼ばれる東京水産大学の教授である。「どんな生物でも精妙にでき ているといえばそれまでですが、ほかの無脊椎動物や軟体動物とはちがう斬新な デザインや機能がいくつもあります」とイカ博士は言う。それ故に、博士は《創 造主の中でも、かなり前衛的な神様の手で設計されたのではなかろうか?》と書 物に書いている。") insert 宣伝 values("722-51-5454", "19世紀のフランスの昆虫学者。小さいとき、ファーブル昆虫記をよんだ者は、 野に落ちた羊のクソで玉をつくり、それに卵を生みつけるスカラベ=糞虫の生態 にふれて、その不思議にたまげたことだろう。何人かは、それをきっかけに昆虫 少年になったかもしれない。いまだに子どもに夢を与えてくれている。") insert 宣伝 values("267-41-2394", '1970年の『未来の衝撃』、1980年の『第三の波』に続き10年ぶりに 『パワーシフト』が発表された。この3冊はいずれも独立した作品としても読め るものであるが、これをまとめると、知的に一貫した読み物となるようである。 いずれも大書であるが、大きく変動しつづける世界の情勢を読み取るためには3 冊を通して読み進めるのがベストだろう。') go create rule 出版コード規則 as @出版コード in ("1389", "0736", "0877", "1622", "1756") or @出版コード like "99[0-9][0-9]" go sp_bindrule 出版コード規則, "出版者.出版コード" go create rule タイトルコード規則 as @タイトルコード like "BU[0-9][0-9][0-9][0-9]" or /* ビジネス */ @タイトルコード like "M[CPS][0-9][0-9][0-9][0-9]" or /* 料理・食文化、地図、ミステリー */ @タイトルコード like "P[SC][0-9][0-9][0-9][0-9]" or /* 心理学、人文・科学・昆虫記 */ @タイトルコード like "TD[0-9][0-9][0-9][0-9]" or /* 伝統・伝説 */ @タイトルコード like "GL[0-9][0-9][0-9][0-9]" or /* 一般 */ @タイトルコード like "DC[0-9][0-9][0-9][0-9]" or /* 辞書・図鑑 */ @タイトルコード like "[A-Z][A-Z]xxxx" or @タイトルコード like "[A-Z][A-Z]yyyy" /*有効値: BU, MC, MP, MS, PS, PC TD, GL, DC + 4桁の数字 **あるいは **2文字の半角大文字のアルファベットに続く xxxx か yyyy で構成 */ go sp_bindrule タイトルコード規則, "タイトル.タイトルコード" go sp_bindrule タイトルコード規則, "販売詳細.タイトルコード" go create trigger タイトル削除 on タイトル for delete as if (select count(*) from deleted, 販売詳細 where 販売詳細.タイトルコード = deleted.タイトルコード) >0 begin rollback transaction print "'販売詳細'に該当する'タイトルコード'があるため、タイトルを削除する事はできません。" end go create trigger 総販売トリガ on 販売詳細 for insert, update, delete as /* 処理の保存: 影響する行がない時は復帰する */ if @@rowcount = 0 begin return end /* すべての新しい値の追加 */ /* isnull 使用: タイトルテーブルの null 値の意味は ** "未販売"であり、"販売不明"ではない */ update タイトル set 総販売 = isnull(総販売, 0) + (select sum(数量) from inserted where タイトル.タイトルコード = inserted.タイトルコード) /* deleted または updated の全ての値の削除 */ update タイトル set 総販売 = isnull(総販売, 0) - (select sum(数量) from deleted where タイトル.タイトルコード = deleted.タイトルコード) go create view タイトルビュー as select 題名, 著者等級, 姓名, 価格, 総販売, 出版コード from 著者, タイトル, 著者タイトル where 著者.著者コード = 著者タイトル.著者コード and タイトル.タイトルコード = 著者タイトル.タイトルコード go create procedure 印税率検索 @パーセント int as select 著者コード from 著者タイトル where 著者タイトル.印税率 = @パーセント go grant execute on 印税率検索 to public go /* APT の例題 Sales 用のプロシジャを作成 */ create proc 履歴処理 @店コード char(4) as select 日付, 販売.注文番号, 数量, 販売詳細.タイトルコード, 割引率, 価格, 合計 = 数量 * 価格 * (1 - 割引率/100) from 販売, 販売詳細, タイトル where 販売.店コード = @店コード and 販売.注文番号 = 販売詳細.注文番号 and タイトル.タイトルコード = 販売詳細.タイトルコード order by 日付 desc, 販売.注文番号 go create proc 割引処理 as select 割引種別, 店コード, 下限量, 上限量, 割引率 from 割引 go create proc 店名処理 @店名 varchar(40) as declare @小文字名称 varchar(40) select @小文字名称 = lower(@店名) + "%" select 店名, 店コード, 店住所, 市区町村, 都道府県, 郵便番号, country from 店舗 where lower(店名) like @小文字名称 return @@rowcount go create proc 店コード処理 @店コード char(4) as select 店名, 店コード, 店住所, 市区町村, 都道府県, 郵便番号, country from 店舗 where 店コード = @店コード return @@rowcount go create proc 販売入力処理 @店コード char(4), @注文番号 varchar(20), @注文日 varchar(40) as insert 販売 values(@店コード, @注文番号, @注文日) go create proc 販売詳細入力処理 @店コード char(4), @注文番号 varchar(20), @タイトルコード tid, @数量 smallint, @割引率 float as insert 販売詳細 values(@店コード, @注文番号, @タイトルコード, @数量, @割引率) go create proc タイトル処理 ( @題名 varchar(40)) as select @題名 = lower( @題名 ) + "%" select 題名, タイトルコード, 価格 from タイトル where lower(題名) like @題名 return @@rowcount go create proc タイトルコード処理 ( @タイトルコード varchar(80)) as select @タイトルコード = lower( @タイトルコード ) + "%" select 題名, タイトルコード, 価格 from タイトル where lower(タイトルコード) like @タイトルコード return @@rowcount go /* ** 漢数字への変換用プロシジャ ** exec 漢数字 @入力 money, @タイプ tinyint[, @出力 varchar(60)] ** 出力例 ** @タイプ: ** 0 = 一万二千三百四十五 (default) ** 1 = 壱萬弐千参百四拾五 ** 2 = 一千二百三十四 ** 3 = 壱千弐百参拾四 */ create procedure 漢数字 @入力 money, @タイプ tinyint = null, @出力 varchar(60) = null OUTPUT as declare @作業用 varchar(30), /* 作業用 */ @位取り char(12), /* 位取り用の漢字 */ @数字 char(18), /* 漢数字のサンプル */ @漢字1 char(2), /* 万(萬)億兆の判別 */ @全桁カウント tinyint, /* すべての桁のカウント */ @カウント1 tinyint, /* 千までの桁カウント */ @カウント2 tinyint, /* 万、億、兆の桁カウント */ @数値 tinyint, /* 各々の桁における数値 */ @出力フラグ bit set nocount on if @出力 = null begin select @出力フラグ = 1 end if @入力 = 0 begin select @出力 = "0" if @出力フラグ = 1 begin print @出力 end return (0) end /* 入力エラー処理 */ if (@タイプ < 0 and @タイプ > 3) or @タイプ is null begin select @タイプ = 0 end select @作業用 = ltrim(convert(char, @入力)) select @全桁カウント = charindex(".", @作業用) - 1 if @タイプ = 0 or @タイプ = 2 begin /* @タイプ = 0: 一万二千三百四十五 */ select @位取り = "十百千万億兆", @数字 = "一二三四五六七八九" end else begin /* @タイプ = 1: 壱萬弐千参百四拾五 */ select @位取り = "拾百千万億兆", @数字 = "壱弐参四五六七八九" end select @カウント1 = 0, @カウント2 = 3, @出力 = null while(@全桁カウント > 0) begin select @数値 = convert(tinyint, substring(@作業用, @全桁カウント, 1)) if @カウント1 = 0 begin /* 一の位 */ if @カウント2 > 3 begin /* 万、億、兆 の処理 */ select @漢字1 = substring(@出力, 1, 1) select @漢字1 = @漢字1 where @漢字1 = substring(@位取り, @カウント2 - 1, 1) if @@rowcount = 0 or @カウント2 = 4 begin select @出力 = substring(@位取り, @カウント2, 1) + @出力 end else begin select @出力 = stuff(@出力, 1, 1, substring(@位取り, @カウント2, 1)) end end if @数値 != 0 begin /* 漢数字の処理 */ select @出力 = substring(@数字, @数値, 1) + @出力 end end else begin /* 十、百、千の位 */ if @数値 != 0 begin if @数値 != 1 or (@タイプ in (2, 3) and @カウント1 = 3) begin select @出力 = substring(@数字, @数値, 1) + substring(@位取り, @カウント1, 1) + @出力 end else begin select @出力 = substring(@位取り, @カウント1, 1) + @出力 end end end select @カウント1 = @カウント1 + 1, @全桁カウント = @全桁カウント - 1 if @カウント1 > 3 begin select @カウント1 = 0, @カウント2 = @カウント2 + 1 end end /* while の終わり */ if @入力 < 0 begin select @出力 = "−" + @出力 end if @出力フラグ = 1 begin print @出力 end return (0) go /* ** 金額表示 ** exec 金額表示 @入力, @書式[, @出力 = varchar(60)] ** 書式: ** 0 = \12345 (default) 3 = 金壱萬弐千参百四拾五円也 ** 1 = 12345円 4 = 12345円67銭 ** 2 = 一万二千三百四十五円 */ create procedure 金額表示 @入力 money, @書式 tinyint = null, @出力 varchar(60) = null OUTPUT as declare @work varchar(30), @i1 tinyint, @出力フラグ bit set nocount on if @出力 = null begin select @出力フラグ = 1 end /* 入力エラー処理 */ if (@書式 < 0 and @書式 > 4) or @書式 is null begin select @書式 = 0 end select @work = ltrim(convert(char, @入力)) select @i1 = charindex(".", @work), @出力 = "" /* \12345 */ if @書式 = 0 begin select @出力 = "\" + substring(@work, 1, @i1 -1) end else begin /* 12345円 */ if @書式 = 1 begin select @出力 = substring(@work, 1, @i1 -1) + "円" end else begin if @書式 = 2 begin exec 漢数字 @入力, 0, @出力 output select @出力 = @出力 + "円" end else begin if @書式 = 3 begin exec 漢数字 @入力, 1, @出力 output select @出力 = "金" + @出力 + "円也" end else begin /* 12345円67銭 */ if @書式 = 4 begin select @出力 = stuff(@work, @i1, 1, "円") + "銭" end end end end end if @出力フラグ = 1 begin print @出力 end return (0) go /* ** 日付表示 ** exec 日付表示 @入力 datetime, @書式 tinyint ** [, @出力 varchari(36)] ** 書式: ** = 0 1991年 8月 30日 金曜日 ** = 1 平成三年 八月 三十日 金曜日 */ create procedure 日付表示 @入力 datetime = null, @書式 tinyint = null, @出力 varchar(36) = null as declare @年i smallint, @年c varchar(8), @月 varchar(4), @日 varchar(6), @i int, @出力フラグ bit set nocount on if @入力 is null begin select @入力 = getdate() end if @書式 is null begin select @書式 = 0 end if @出力 is null begin select @出力フラグ = 1 end select @年i = datepart(year, @入力) if @書式 = 1 begin /* 和歴に変換 */ if @年i <= 1911 begin select @年i = @年i - 1867 select @出力 = "明治" end else begin if @年i <= 1925 begin select @年i = @年i - 1911 select @出力 = "大正" end else begin if @年i <= 1988 begin select @年i = @年i - 1925 select @出力 = "昭和" end else begin select @年i = @年i - 1988 select @出力 = "平成" end end end select @年c = "1", @日 = "1" exec 漢数字 @年i, 0, @年c output select @i = datepart(day, @入力) exec 漢数字 @i, 0, @日 output select @出力 = @出力 + @年c + "年 " + datename(month, @入力) + " " + @日 + "日 " + datename(weekday, @入力) + "曜日" end else begin select @出力 = "西暦" + ltrim(convert(char, datepart(year, @入力))) + "年 " + ltrim(convert(char, datepart(month, @入力))) + "月 " + ltrim(convert(char, datepart(day, @入力))) + "日 " + datename(weekday, @入力) + "曜日" end if @出力フラグ = 1 begin print @出力 end return (0) go /* ** 時刻表示 ** exec 時刻表示 [@入力 datetime[, @書式 tinyint ** [, @出力 output]]] ** 書式: ** = 0 17時 13分 39秒 ** = 1 午後5時 13分 39秒 ** = 2 十七時 十三分 三十九秒 ** = 3 午後五時 十三分 三十九秒 */ create procedure 時刻表示 @入力 datetime = null, @書式 tinyint = null, @出力 varchar(32) = null as declare @時 varchar(6), @分 varchar(6), @秒 varchar(6), @i tinyint, @出力フラグ bit set nocount on if @入力 is null begin select @入力 = getdate() end if (@書式 < 0 or @書式 > 3) or @書式 is null begin select @書式 = 0 end if @出力 is null begin select @出力フラグ = 1 end /* 時 */ select @i = datepart(hour, @入力), @出力 = null if @書式 in (1, 3) begin if @i > 11 begin select @出力 = "午後 ", @i = @i - 12 end else begin select @出力 = "午前 " end end if @書式 in (2, 3) begin select @時 = "1", @分 = "1", @秒 = "1" exec 漢数字 @i, 0, @時 output select @i = datepart(minute, @入力) exec 漢数字 @i, 0, @分 output select @i = datepart(second, @入力) exec 漢数字 @i, 0, @秒 output end else begin select @時 = ltrim(convert(char, @i)) select @分 = ltrim(convert(char, datepart(minute, @入力))) select @秒 = ltrim(convert(char, datepart(second, @入力))) end select @出力 = @出力 + @時 + "時 " + @分 + "分 " + @秒 + "秒" if @出力フラグ = 1 begin print @出力 end return (0) go grant exec on 履歴処理 to public grant exec on 割引処理 to public grant exec on タイトルコード処理 to public grant exec on 店名処理 to public grant exec on 店コード処理 to public grant exec on 販売入力処理 to public grant exec on 販売詳細入力処理 to public grant exec on タイトル処理 to public grant exec on 漢数字 to public grant exec on 金額表示 to public grant exec on 日付表示 to public grant exec on 時刻表示 to public go grant create procedure to public go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin execute sp_adduser guest end go if exists (select * from master.dbo.sysdatabases where name = "jpubs") begin grant all on 出版者 to guest grant all on タイトル to guest grant all on 著者 to guest grant all on 著者タイトル to guest grant all on 販売 to guest grant all on 販売詳細 to guest grant all on 著作権料 to guest grant all on 店舗 to guest grant all on 割引 to guest grant all on 著者肖像 to guest grant all on 宣伝 to guest grant exec on 印税率検索 to guest grant exec on 履歴処理 to guest grant exec on 割引処理 to guest grant exec on タイトルコード処理 to guest grant exec on 店名処理 to guest grant exec on 店コード処理 to guest grant exec on 販売入力処理 to guest grant exec on 販売詳細入力処理 to guest grant exec on タイトル処理 to guest grant exec on 漢数字 to guest grant exec on 金額表示 to guest grant exec on 日付表示 to guest grant exec on 時刻表示 to guest grant create table to guest grant create view to guest grant create rule to guest grant create default to guest grant create procedure to guest end go use sybsystemprocs go grant exec on sp_bindefault to guest grant exec on sp_unbindefault to guest grant exec on sp_bindrule to guest grant exec on sp_unbindrule to guest grant exec on sp_addtype to guest grant exec on sp_droptype to guest grant exec on sp_spaceused to guest grant exec on sp_help to guest grant exec on sp_helpgroup to guest grant exec on sp_helpindex to guest grant exec on sp_helprotect to guest go exit