{"id":292,"date":"2022-01-20T11:08:00","date_gmt":"2022-01-20T03:08:00","guid":{"rendered":"https:\/\/www.keioi.cn\/?p=292"},"modified":"2022-01-20T11:08:11","modified_gmt":"2022-01-20T03:08:11","slug":"sql%e6%96%b0%e5%bb%ba%e4%b8%a4%e4%b8%aa%e8%a1%a8%e5%b9%b6%e4%bd%bf%e7%94%a8%e8%a7%a6%e5%8f%91%e5%99%a8%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.keioi.cn\/archives\/292","title":{"rendered":"SQL\u65b0\u5efa\u8868\u5e76\u4f7f\u7528\u89e6\u53d1\u5668\uff0c\u89c6\u56fe\u7b49\u3002"},"content":{"rendered":"\n<p>\u65b0\u5efa<\/p>\n\n\n\n<p>CREATE TABLE [dbo].[books](<br>[ids] [int] not null primary key identity ,&#8212;\u5173\u952e\u5b57\uff0c \u81ea\u589e<br>[totols] [int] , &#8211;\u603b\u6570<br>[price] [numeric](18, 0) , &#8211;\u4ef7<br>[locat] <a href=\"255\">varchar<\/a> <a href=\"200\">(200)<\/a> ,&#8211;\u4f4d\u7f6e<br>[stat] [int] NULL,&#8212;\u72b6\u6001<br>[kind] <a href=\"200\">varchar(200)<\/a>,&#8212;\u79cd\u7c7b<br>[bkname] <a href=\"200\">varchar<\/a> <a href=\"200\">(200)<\/a> ,&#8212;\u4e66\u540d\u5b57<br>[note] <a href=\"255\">varchar<\/a> <a href=\"200\">(200)<\/a> ,&#8211;\u5907\u6ce8<br>[due] [date] &#8212;\u65e5\u671f<br>);<\/p>\n\n\n\n<p>\u63d2\u5165\u4e00\u4e9b\u6570\u636e<\/p>\n\n\n\n<p>insert into books (totals,price,locat,stat,kind,bkname,note,due) values (3,28,&#8217;\u4e00\u5c421&#8242;,1,&#8217;\u6587\u5b66&#8217;,&#8217;\u4e09\u4f53&#8217;,&#8221;,&#8217;2021-10-15&#8242;)\uff0c<br>(2,20,&#8217;\u4e00\u5c421&#8242;,1,&#8217;\u751f\u6d3b&#8217;,&#8217;\u5ddd\u83dc\u8c31&#8217;,&#8221;,&#8217;2021-10-17&#8242;),<br>(5,20,&#8217;\u4e8c\u5c421&#8242;,1,&#8217;\u6587\u5b66&#8217;,&#8217;\u4e09\u8a00&#8217;,&#8221;,&#8217;2021-10-17&#8242;);<\/p>\n\n\n\n<p>\u7b49\u7b49<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u66f4\u6539\u5b57\u6bb5\u540d<\/p>\n\n\n\n<p>exec sp_rename &#8216;books.totols&#8217;,&#8217;totals&#8217;;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u5efa\u4e00\u4e2a\u6570\u91cf\u660e\u7ec6\u8868<\/p>\n\n\n\n<p>CREATE TABLE  bookqty(<br>ids int IDENTITY(1,1) NOT NULL,<br>totals int ,<br>[bkname] <a href=\"200\">varchar<\/a>(200)<br>)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>\u89e6\u53d1\u5668<\/strong><\/p>\n\n\n\n<p>\u60f3\u8981\u4e66\u672c\u6570\u91cf\u66f4\u65b0\u4e3a0\u72b6\u6001\u81ea\u52a8\u53d8\u4e3a0\u3002\u66f4\u65b0books\u6570\u91cfbookqty\u6570\u91cf\u4e5f\u540c\u65f6\u66f4\u65b0.<\/p>\n\n\n\n<p>\u63d2\u5165books\u8868\u65b0\u8d44\u6599\u4e5f\u540c\u65f6\u63d2\u5165bookqty<\/p>\n\n\n\n<p>\u4e00\u822c<\/p>\n\n\n\n<p>update books set stat=0 where totols=0; \u66f4\u65b0\u72b6\u6001<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>insert into bookqty (totals,bkname) select totals,bkname from books \u6765\u66f4\u65b0bookqty\u8868<\/p>\n\n\n\n<p>\u5728books\u52a0\u4e00\u4e2aupdate\u89e6\u53d1\u5668\u6765<\/p>\n\n\n\n<p>create trigger [dbo].[upstat]<br>on [dbo].[books]<br>after update<br>as<\/p>\n\n\n\n<p>if update(totals) &#8211;\u6709\u66f4\u65b0\u5230totals\u5b57\u6bb5<br>begin<br>update books set stat=0 where totals=0<br>update books set stat=1 where totals&lt;>0<br>update bookqty<br>set totals=books.totals<br>from bookqty,books<br>where books.bkname=bookqty.bkname<br>end<\/p>\n\n\n\n<p>go<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u5f53\u66f4\u65b0books\u6570\u91cf bookqty \u5c31\u4f1a\u540c\u6b65\u66f4\u65b0\u4ee5\u4e0a\u4e24\u4e2a\u5185\u5bb9\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u5728books\u52a0\u4e00\u4e2ainsert\u89e6\u53d1\u5668 <\/p>\n\n\n\n<p>create trigger [dbo].[upqty]<br>on [dbo].[books]<br>after insert<br>as<br>begin<\/p>\n\n\n\n<p>insert into bookqty(totals,bkname) select totals,bkname from books where bkname not in(select bkname from bookqty) &#8211;\u63d2\u5165books\u5185\u6709\u4f46bookqty\u8868\u5185\u6ca1\u6709\u7684<\/p>\n\n\n\n<p>end<\/p>\n\n\n\n<p>go<\/p>\n\n\n\n<p> \u5f53\u63d2\u5165books\u65b0\u8d44\u6599bookqty\u5c31\u4f1a\u540c\u6b65\u66f4\u65b0\u5185\u5bb9\u3002 <\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>\u89c6\u56fe<\/strong><\/p>\n\n\n\n<p>\u65b0\u5efa\u4e00\u4e2a\u5b9a\u4e49\u72b6\u6001\u8868<\/p>\n\n\n\n<p>CREATE TABLE [dbo].[bstat](<br>[ids] [int] IDENTITY(1,1) NOT NULL,<br>[stat] [int] ,<br>[name] <a href=\"200\">varchar<\/a>(200)<br>)<\/p>\n\n\n\n<p>\u6dfb\u52a0\u6570\u636e ,0\u4e3a\u7981\u501f\uff0c1\u4e3a\u53ef\u501f\u3002<\/p>\n\n\n\n<p>insert into  bstat ( stat , name ) values (0,&#8217;\u7981\u501f&#8217;)\uff0c<br>( 1,&#8217;\u53ef\u501f&#8217; );<\/p>\n\n\n\n<p>\u521b\u5efa\u89c6\u56fe\uff0c\u67e5\u8be2\u662f\u5426\u53ef\u501f<\/p>\n\n\n\n<p>create view qtyinv as<br>select bstat.name,books.bkname,books.totals from books<br>left join bstat on books.stat=bstat.stat;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>select *  from qtyinv<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"359\" height=\"327\" src=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120102810.png\" alt=\"\" class=\"wp-image-299\" srcset=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120102810.png 359w, https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120102810-300x273.png 300w\" sizes=\"auto, (max-width: 359px) 100vw, 359px\" \/><\/figure>\n\n\n\n<p>\u67e5\u6bcf\u5c42\u603b\u6570\u3002\u521b\u5efa\u89c6\u56fe\u3002<\/p>\n\n\n\n<p>create view qtylocat as<br>select sum(totals) as total,LEFT(locat,2) as locat from books group by LEFT(locat,2)<\/p>\n\n\n\n<p>go<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"308\" height=\"301\" src=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u56fe\u7247\u7f16\u8f91_20220120103329.jpg\" alt=\"\" class=\"wp-image-300\" srcset=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u56fe\u7247\u7f16\u8f91_20220120103329.jpg 308w, https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u56fe\u7247\u7f16\u8f91_20220120103329-300x293.jpg 300w\" sizes=\"auto, (max-width: 308px) 100vw, 308px\" \/><\/figure>\n\n\n\n<p>\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u521b\u5efa\u67e5\u6bcf\u7c7b\u7684\u603b\u6570\uff0c\u4e0d\u505a\u8bf4\u660e\u3002<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>\u51fd\u6570<\/strong><\/p>\n\n\n\n<p>\u5728\u4e66\u2018\u4e09\u8a00\u2019\u8bb0\u5f55\u7684\u5907\u6ce8\u63d2\u5165\u4e00\u4e2a\u5907\u6ce8<\/p>\n\n\n\n<p>update books set note=&#8217;\u5168\u540d\uff1a\u4e09\u8a00\u4e24\u62cd\uff0c\u4f4d\u7f6e\uff1a\u4e00\u5c421&#8242; where bkname=&#8217;\u4e09\u8a00&#8217;;<\/p>\n\n\n\n<p>\u5199\u4e2a\u51fd\u6570\u53ef\u4ee5\u53d6\u5168\u540d\u6216\u4f4d\u7f6e\u7684\u3002<\/p>\n\n\n\n<p>create function note_arg<br>(<br>@note nvarchar(max),&#8212; \u53c2\u6570  \u67d0\u5b57\u6bb5\u5185\u5bb9<br>@k NVARCHAR(30)  &#8211;\u67d0\u5b57\u7b26<br>)<br>returns nvarchar(max)<br>as<br>begin<br>declare @f bit=1<br>if CHARINDEX(@k,@note)&lt;=0 return null  &#8211;\u6ca1\u6709\u67d0\u5b57\u7b26\u8fd4\u56denull <\/p>\n\n\n\n<p> while @f=1<\/p>\n\n\n\n<p> begin<\/p>\n\n\n\n<p> if CHARINDEX(@k,@note,2)>1&#8211;\u6709\u5c31\u622a\u53d6\u5b57\u7b26\u540e\u9762\u7684\u5185\u5bb9<br>set @note=SUBSTRING(@note,CHARINDEX(@k,@note,2),LEN(@note))<br>else<br>set @f=0<br>end<br>while CHARINDEX(&#8216; &#8216;,@note)>0 &#8211;\u540e\u9762\u6709\u4e24\u7a7a\u683c\u66ff\u6362\u4e3a\u4e00\u4e2a\u7a7a\u683c<br>begin<br>set @note=REPLACE(@note,&#8217; &#8216;,&#8217; &#8216;)<br>end<br>set @note=REPLACE(@note,&#8217;\uff1a&#8217;,&#8217;:&#8217;)  &#8212;\u66ff\u6362\u540e\u9762\u7684\u7b26\u53f7\u4e3a,<br>set @note=REPLACE(@note,&#8217;\uff0c&#8217;,&#8217;,&#8217;)<br>set @note=REPLACE(@note,&#8217; ,&#8217;,&#8217;,&#8217;)<br>set @note=REPLACE(@note,&#8217;;&#8217;,&#8217;,&#8217;)<br>set @note=REPLACE(@note,&#8217; ;&#8217;,&#8217;,&#8217;)<br>set @note=REPLACE(@note,&#8217;|&#8217;,&#8217;,&#8217;)<br>set @note=REPLACE(@note,&#8217; &#8216;,&#8217;,&#8217;)<br>if CHARINDEX(&#8216;,&#8217;,@note)>1 &#8212;\u622a\u53d6,\u524d\u9762\u7684<br>set @note=SUBSTRING(@note,1,CHARINDEX(&#8216;,&#8217;,@note)-1)<br>return REPLACE(@note,@k,&#8221;)<br>end<\/p>\n\n\n\n<p>\u51fd\u6570\u5982\u4e0a\uff0c\u53ef\u4ee5\u622a\u53d6\u67d0\u5b57\u7b26\u540e\u548c\u67d0\u7b26 \u53f7\u524d\u7684\u5185\u5bb9\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"657\" height=\"174\" src=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120104301.png\" alt=\"\" class=\"wp-image-301\" srcset=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120104301.png 657w, https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120104301-300x79.png 300w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>\u5b58\u50a8\u8fc7\u7a0b<\/strong><\/p>\n\n\n\n<p>\u5199\u4e24\u4e2a\u5b58\u50a8\u8fc7\u7a0b\uff0c\u5b9e\u73b0\u52a0\u51cf\u4e66\u7c4d\u6570\u91cf\u3001<\/p>\n\n\n\n<p>\u589e\u52a0<\/p>\n\n\n\n<p>CREATE proc addbook<br>@name nvarchar(30),&#8211;\u53c2\u6570  \u4e66\u540d<br>@i int  &#8212;\u589e\u52a0\u591a\u5c11<br>as<br>declare @n int  <br>if exists(select * from books where bkname=@name)  &#8211;\u662f\u5426\u5b58\u5728\u8bb0\u5f55<br>begin<br>select @n=totals from books where bkname=@name<br>set @n=@n+@i<br>if @n&lt;=20 &#8211;\u4e0d\u80fd\u8d85\u8fc7\u5b58\u653e\u4e0a\u9650<br>begin<br>update books set totals=@n where bkname=@name<br>end<br>else<br>begin<br>RAISERROR(&#8216;\u5927\u4e8e\u53ef\u5b58\u91cf!&#8217;,10,1)<br>end<br>end<br>else<br>begin<br>RAISERROR(&#8216;\u4e0d\u5b58\u5728!&#8217;,10,1)<br>end<\/p>\n\n\n\n<p>GO<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"425\" height=\"187\" src=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105628.png\" alt=\"\" class=\"wp-image-302\" srcset=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105628.png 425w, https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105628-300x132.png 300w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"143\" src=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105707.png\" alt=\"\" class=\"wp-image-303\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"161\" src=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105847.png\" alt=\"\" class=\"wp-image-304\" srcset=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105847.png 320w, https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105847-300x151.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"249\" height=\"244\" src=\"https:\/\/www.keioi.cn\/wp-content\/uploads\/2022\/01\/\u5fae\u4fe1\u622a\u56fe_20220120105929.png\" alt=\"\" class=\"wp-image-305\"\/><\/figure>\n\n\n\n<p>\u51cf\u5c11\uff0c\u7c7b\u4f3c<\/p>\n\n\n\n<p>CREATE proc reducebook<br>@name nvarchar(30),<br>@i int<br>as<br>declare @n int<br>if exists(select * from books where bkname=@name)<br>begin<br>select @n=totals from books where bkname=@name<br>if @n>=@i &#8211;\u4e0d\u80fd\u8d85\u8fc7\u5e93\u5b58<br>begin<br>set @n=@n-@i<br>update books set totals=@n where bkname=@name<br>end<br>else<br>begin<br>RAISERROR(&#8216;\u5927\u4e8e\u5e93\u5b58!&#8217;,10,1)<br>end<br>end<br>else<br>begin<br>RAISERROR(&#8216;\u4e0d\u5b58\u5728!&#8217;,10,1)<br>end<br>GO<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u65b0\u5efa CREATE TABLE &#46;&#46;&#46;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-292","post","type-post","status-publish","format-standard","hentry","category-4"],"_links":{"self":[{"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/posts\/292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/comments?post=292"}],"version-history":[{"count":6,"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/posts\/292\/revisions"}],"predecessor-version":[{"id":306,"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/posts\/292\/revisions\/306"}],"wp:attachment":[{"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/media?parent=292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/categories?post=292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.keioi.cn\/api\/wp\/v2\/tags?post=292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}