{"id":347,"date":"2013-01-24T15:39:48","date_gmt":"2013-01-24T15:39:48","guid":{"rendered":""},"modified":"2013-01-24T15:39:48","modified_gmt":"2013-01-24T15:39:48","slug":"347","status":"publish","type":"post","link":"https:\/\/3v.org.cn\/?p=347","title":{"rendered":"SQL\u5b58\u50a8\u8fc7\u7a0b\u76f8\u5173\u4fe1\u606f\u67e5\u770b"},"content":{"rendered":"<p>&#8211;1\u3001\u67e5\u770b\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b\u4e0e\u51fd\u6570 <br \/>&nbsp;&nbsp;&nbsp;&nbsp; exec sp_stored_procedures <br \/>&nbsp;&nbsp;&nbsp;&nbsp;\u6216\u8005 <br \/>&nbsp;&nbsp;&nbsp;&nbsp; select * from dbo.sysobjects where OBJECTPROPERTY(id, N&#8217;IsProcedure&#8217;) = 1 order by name <br \/>&#8211;2\u3001\u67e5\u770b\u5b58\u50a8\u8fc7\u7a0b\u7684\u5185\u5bb9&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp; select text from syscomments where id=object_id(&#8216;\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0&#8217;) <br \/>&nbsp;&nbsp; &#8212; \u6216\u8005\u7528 <br \/>&nbsp;&nbsp; sp_helptext&nbsp;&nbsp;\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0 <\/p>\n<p>&#8211;3\u3001\u67e5\u770b\u5b58\u50a8\u8fc7\u7a0b\u7684\u53c2\u6570\u60c5\u51b5 <br \/>&nbsp;&nbsp; select &#8216;\u53c2\u6570\u540d\u79f0&#8217; = name, <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u7c7b\u578b&#8217; = type_name(xusertype), <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u957f\u5ea6&#8217; = length,&nbsp;&nbsp;&nbsp;&nbsp;<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u53c2\u6570\u987a\u5e8f&#8217; = colid, <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u6392\u5e8f\u65b9\u5f0f&#8217; = collation <br \/>&nbsp;&nbsp; from&nbsp;&nbsp;&nbsp;&nbsp;syscolumns <br \/>&nbsp;&nbsp; where&nbsp;&nbsp; id=object_id(&#8216;\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0&#8217;) <\/p>\n<p>&nbsp;&nbsp; &#8211;\u6216\u8005 <\/p>\n<p>&nbsp;&nbsp; &#8211;\u67e5\u770b\u5b58\u50a8\u8fc7\u7a0b\u53c2\u6570\u4fe1\u606f\uff1a&nbsp;&nbsp; <br \/>&#8211;\u5982\u679c\u8fd4\u56de\u503c&gt;1\uff0c\u5219\u6709\u53c2\u6570\u3002\u5426\u5219\u65e0&nbsp;&nbsp; <br \/>Create&nbsp;&nbsp; PROC sp_PROC_Params <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @procedure_name sysname&nbsp;&nbsp;,&nbsp;&nbsp;&#8211;\u5b58\u50a8\u8fc7\u7a0b\u6216\u8005\u7528\u6237\u5b9a\u4e49\u51fd\u6570\u540d&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @group_number int=1&nbsp;&nbsp;&nbsp;&nbsp; ,&nbsp;&nbsp; &#8211;\u5b58\u50a8\u8fc7\u7a0b\u7684\u7ec4\u53f7,\u5fc5\u987b\u57280\u523032767\u4e4b\u95f4,0\u8868\u793a\u663e\u793a\u8be5\u5b58\u50a8\u8fc7\u7a0b\u7ec4\u7684\u6240\u6709\u53c2\u6570&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @operator nchar(2)=N&#8217;=&#8217;&nbsp;&nbsp;&nbsp;&nbsp; &#8211;\u67e5\u627e\u5bf9\u8c61\u7684\u8fd0\u7b97\u7b26&nbsp;&nbsp; <br \/>AS <br \/>SET&nbsp;&nbsp; NOCOUNT ON&nbsp;&nbsp; <br \/>DECLARE @SQL nvarchar(4000)&nbsp;&nbsp; <br \/>SET @SQL=N&#8217;Select&nbsp;&nbsp; <br \/>&nbsp;&nbsp;PorcedureName=CASE&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp; o.xtype&nbsp;&nbsp; IN(&#8221;P&#8221;,&#8221;X&#8221;)&nbsp;&nbsp; <br \/>&nbsp;&nbsp;THEN&nbsp;&nbsp; QUOTENAME(o.name)+N&#8221;;&#8221;+CAST(c.number&nbsp;&nbsp; as&nbsp;&nbsp; varchar)&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp; USER_NAME(o.uid)=&#8221;system_function_schema&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;AND&nbsp;&nbsp; o.xtype=&#8221;FN&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;THEN&nbsp;&nbsp; o.name&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp;&nbsp;&nbsp; USER_NAME(o.uid)=&#8221;system_function_schema&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;THEN&nbsp;&nbsp; &#8221;::&#8221;+o.name&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp; o.xtype=&#8221;FN&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;THEN&nbsp;&nbsp; QUOTENAME(USER_NAME(o.uid))+N&#8221;.&#8221;+QUOTENAME(o.name)&nbsp;&nbsp; <br \/>&nbsp;&nbsp;ELSE&nbsp;&nbsp; QUOTENAME(o.name)&nbsp;&nbsp; END,&nbsp;&nbsp; <br \/>&nbsp;&nbsp;Owner=USER_NAME(o.uid),&nbsp;&nbsp; <br \/>&nbsp;&nbsp;GroupNumber=c.number,&nbsp;&nbsp; <br \/>&nbsp;&nbsp;ParamId=c.colid,&nbsp;&nbsp; <br \/>&nbsp;&nbsp;ParamName=CASE&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp; o.xtype=&#8221;FN&#8221;&nbsp;&nbsp; AND&nbsp;&nbsp; c.colid=0&nbsp;&nbsp; THEN&nbsp;&nbsp; &#8221;&lt;Returns&gt;&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;ELSE&nbsp;&nbsp; c.name&nbsp;&nbsp; END,&nbsp;&nbsp; <br \/>&nbsp;&nbsp;Type=QUOTENAME(t.name)+CASE&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp; t.name&nbsp;&nbsp; IN&nbsp;&nbsp; (&#8221;decimal&#8221;,&#8221;numeric&#8221;)&nbsp;&nbsp; <br \/>&nbsp;&nbsp;THEN&nbsp;&nbsp; N&#8221;(&#8221;+CAST(c.prec&nbsp;&nbsp; as&nbsp;&nbsp; varchar)+N&#8221;,&#8221;+CAST(c.scale&nbsp;&nbsp; as&nbsp;&nbsp; varchar)+N&#8221;)&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp; t.name=N&#8221;float&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;o&#114;&nbsp;&nbsp; t.name&nbsp;&nbsp; like&nbsp;&nbsp; &#8221;%char&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;o&#114;&nbsp;&nbsp; t.name&nbsp;&nbsp; like&nbsp;&nbsp; &#8221;%binary&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;THEN&nbsp;&nbsp; N&#8221;(&#8221;+CAST(c.prec&nbsp;&nbsp; as&nbsp;&nbsp; varchar)+N&#8221;)&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;ELSE&nbsp;&nbsp; &#8221;&#8221;&nbsp;&nbsp; END,&nbsp;&nbsp; <br \/>&nbsp;&nbsp;o&#114;ientation=CASE&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;WHEN&nbsp;&nbsp; o.xtype=&#8221;FN&#8221;&nbsp;&nbsp; AND&nbsp;&nbsp; c.colid=0&nbsp;&nbsp; THEN&nbsp;&nbsp; &#8221;&lt;Returns&gt;&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;ELSE&nbsp;&nbsp; N&#8221;Input&#8221;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;+CASE&nbsp;&nbsp; WHEN&nbsp;&nbsp; c.isoutparam=1&nbsp;&nbsp; THEN&nbsp;&nbsp; &#8221;\/Output&#8221;&nbsp;&nbsp; ELSE&nbsp;&nbsp; &#8221;&#8221;&nbsp;&nbsp; END&nbsp;&nbsp; <br \/>&nbsp;&nbsp;END&nbsp;&nbsp; <br \/>&nbsp;&nbsp;FROM&nbsp;&nbsp; sysobjects&nbsp;&nbsp; o,syscolumns&nbsp;&nbsp; c,systypes&nbsp;&nbsp; t&nbsp;&nbsp; <br \/>&nbsp;&nbsp;Where&nbsp;&nbsp; o.id=c.id&nbsp;&nbsp; <br \/>&nbsp;&nbsp;AND&nbsp;&nbsp; c.xusertype=t.xusertype&nbsp;&nbsp; <br \/>&nbsp;&nbsp;AND&nbsp;&nbsp; o.name&#8217; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;+CASE WHEN @operator IN (&#8216;=&#8217;,&#8217;&gt;&#8217;,&#8217;&gt;=&#8217;,&#8217;!&gt;&#8217;,'&lt;&#8216;,'&lt;=&#8217;,&#8217;!&lt;&#8216;,'&lt;&gt;&#8217;,&#8217;!=&#8217;) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THEN @operator+QUOTENAME(@procedure_name,&#8221;&#8221;) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHEN @operator=&#8217;IN&#8217; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THEN @operator+N&#8217;&nbsp;&nbsp; IN(&#8216;+QUOTENAME(@procedure_name,&#8221;&#8221;)+&#8217;)&#8217; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHEN @operator IN (&#8216;LIKE&#8217;,&#8217;%&#8217;) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THEN &#8216;&nbsp;&nbsp; LIKE&nbsp;&nbsp; &#8216;+QUOTENAME(@procedure_name,&#8221;&#8221;) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE &#8216;=&#8217;+QUOTENAME(@procedure_name,&#8221;&#8221;) <br \/>&nbsp;&nbsp;&nbsp;&nbsp; END+N&#8217;&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;AND((&#8216;+CASE WHEN @group_number BETWEEN 1 AND 32767 <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THEN N&#8217;c.number=&#8217;+CAST(@group_number as varchar) <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHEN @group_number=0 THEN N&#8217;1=1&#8242; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ELSE N&#8217;c.number=1&#8242; <br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END+N&#8217;&nbsp;&nbsp; AND&nbsp;&nbsp; o.xtype&nbsp;&nbsp; IN(&#8221;P&#8221;,&#8221;X&#8221;))&nbsp;&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;o&#114;&nbsp;&nbsp; (c.number=0&nbsp;&nbsp; AND&nbsp;&nbsp; o.xtype=&#8221;FN&#8221;)&nbsp;&nbsp; <br \/>&nbsp;&nbsp;o&#114;&nbsp;&nbsp; (c.number=1&nbsp;&nbsp; AND&nbsp;&nbsp; o.xtype&nbsp;&nbsp; IN(&#8221;IF&#8221;,&#8221;TF&#8221;)))&#8217;&nbsp;&nbsp; <br \/>EXEC sp_executesql @SQL&nbsp;&nbsp; <\/p>\n<p>&#8211;4\u3001\u67e5\u770b\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b\u5185\u5bb9 <br \/>&nbsp;&nbsp; select&nbsp;&nbsp; b.name&nbsp;&nbsp; ,a.text&nbsp;&nbsp; from&nbsp;&nbsp; syscomments&nbsp;&nbsp; a,sysobjects&nbsp;&nbsp; b&nbsp;&nbsp; where&nbsp;&nbsp; object_id(b.name)=a.id&nbsp;&nbsp; and&nbsp;&nbsp; b.xtype&nbsp;&nbsp; in(&#8216;P&#8217;,&#8217;TR&#8217;)&nbsp;&nbsp;<\/p>\n<p>&#8211;5\u3001\u67e5\u770b\u5305\u542b\u5b57\u7b26\u4e32\u5185\u5bb9\u7684\u5b58\u50a8\u8fc7\u7a0b&nbsp;&nbsp;<\/p>\n<p>select&nbsp;&nbsp; b.name&nbsp;&nbsp; ,a.text&nbsp;&nbsp; from&nbsp;&nbsp; syscomments&nbsp;&nbsp; a,sysobjects&nbsp;&nbsp; b <br \/>where <br \/>charindex(&#8216;\u5b57\u7b26\u4e32\u5185\u5bb9&#8217;,a.text)&gt;0&nbsp;&nbsp;&nbsp;&nbsp;and <br \/>object_id(b.name)=a.id&nbsp;&nbsp; and&nbsp;&nbsp; b.xtype&nbsp;&nbsp; in(&#8216;P&#8217;,&#8217;TR&#8217;) <\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8211;1\u3001\u67e5\u770b\u6240\u6709\u5b58\u50a8\u8fc7\u7a0b\u4e0e\u51fd\u6570 &nbsp;&nbsp;&nbsp;&nbsp; exec sp_s<\/p>\n<div class=\"more-link\">\n\t\t\t\t <a href=\"https:\/\/3v.org.cn\/?p=347\" class=\"link-btn theme-btn\"><span>Read More <\/span> <i class=\"fa fa-caret-right\"><\/i><\/a>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":""},"categories":[11],"tags":[],"class_list":["post-347","post","type-post","status-publish","format-standard","hentry","category-11"],"_links":{"self":[{"href":"https:\/\/3v.org.cn\/index.php?rest_route=\/wp\/v2\/posts\/347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3v.org.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/3v.org.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/3v.org.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/3v.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=347"}],"version-history":[{"count":0,"href":"https:\/\/3v.org.cn\/index.php?rest_route=\/wp\/v2\/posts\/347\/revisions"}],"wp:attachment":[{"href":"https:\/\/3v.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/3v.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/3v.org.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}