{"id":299,"date":"2013-03-25T23:51:13","date_gmt":"2013-03-25T23:51:13","guid":{"rendered":"ef0d3930a7b6c95bd2b32ed45989c61f"},"modified":"2013-03-25T23:51:13","modified_gmt":"2013-03-25T23:51:13","slug":"","status":"publish","type":"post","link":"https:\/\/www.xiaobo.li\/notes\/archives\/299","title":{"rendered":"SQLServer\u5b58\u50a8\u8fc7\u7a0b\u53ca\u53c2\u6570\u67e5\u8be2"},"content":{"rendered":"<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u5f97\u5230\u6570\u636e\u5e93\u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\uff1a<\/p>\n<blockquote style=\"background-image:none;border-bottom:#efefef 2px solid;border-left:#efefef 2px solid;padding-bottom:4px;widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:0px;padding-left:4px;letter-spacing:normal;padding-right:4px;font:italic 12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#333333;border-top:#efefef 2px solid;border-right:#efefef 2px solid;word-spacing:0px;padding-top:4px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\n<p style=\"text-indent:0px;margin:10px auto;\"><span style=\"font-family:'Courier New';font-size:x-small;\">select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name<\/span><\/p>\n<\/blockquote>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u5f97\u5230\u67d0\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u7684\u53c2\u6570\u4fe1\u606f\uff1a(SQL\u65b9\u6cd5)<\/p>\n<blockquote style=\"background-image:none;border-bottom:#efefef 2px solid;border-left:#efefef 2px solid;padding-bottom:4px;widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:0px;padding-left:4px;letter-spacing:normal;padding-right:4px;font:italic 12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#333333;border-top:#efefef 2px solid;border-right:#efefef 2px solid;word-spacing:0px;padding-top:4px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\n<p style=\"text-indent:0px;margin:10px auto;\"><span style=\"font-family:'Courier New';font-size:x-small;\">select * from syscolumns where ID in&nbsp;&nbsp;&nbsp;<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\n&nbsp; (SELECT id FROM sysobjects as a&nbsp;<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\n&nbsp;&nbsp; WHERE OBJECTPROPERTY(id, N'IsProcedure') = 1&nbsp;&nbsp;&nbsp;<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\n&nbsp;&nbsp; and id = object_id(N'[dbo].[mystoredprocedurename]'))<\/span><\/p>\n<\/blockquote>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u5f97\u5230\u67d0\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u7684\u53c2\u6570\u4fe1\u606f\uff1a(Ado.net\u65b9\u6cd5)<\/p>\n<blockquote style=\"background-image:none;border-bottom:#efefef 2px solid;border-left:#efefef 2px solid;padding-bottom:4px;widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:0px;padding-left:4px;letter-spacing:normal;padding-right:4px;font:italic 12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#333333;border-top:#efefef 2px solid;border-right:#efefef 2px solid;word-spacing:0px;padding-top:4px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\n<p style=\"text-indent:0px;margin:10px auto;\"><span style=\"font-family:'Courier New';font-size:x-small;\">SqlCommandBuilder.DeriveParameters(mysqlcommand);<\/span><\/p>\n<\/blockquote>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u5f97\u5230\u6570\u636e\u5e93\u6240\u6709\u8868\uff1a<\/p>\n<blockquote style=\"background-image:none;border-bottom:#efefef 2px solid;border-left:#efefef 2px solid;padding-bottom:4px;widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:0px;padding-left:4px;letter-spacing:normal;padding-right:4px;font:italic 12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#333333;border-top:#efefef 2px solid;border-right:#efefef 2px solid;word-spacing:0px;padding-top:4px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\n<p style=\"text-indent:0px;margin:10px auto;\"><span style=\"font-family:'Courier New';font-size:x-small;\">select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 order by name<\/span><\/p>\n<\/blockquote>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u5f97\u5230\u67d0\u4e2a\u8868\u4e2d\u7684\u5b57\u6bb5\u4fe1\u606f\uff1a<\/p>\n<blockquote style=\"background-image:none;border-bottom:#efefef 2px solid;border-left:#efefef 2px solid;padding-bottom:4px;widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:0px;padding-left:4px;letter-spacing:normal;padding-right:4px;font:italic 12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#333333;border-top:#efefef 2px solid;border-right:#efefef 2px solid;word-spacing:0px;padding-top:4px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\n<p style=\"text-indent:0px;margin:10px auto;\"><span style=\"font-family:'Courier New';font-size:x-small;\">select c.name as ColumnName, c.colorder as ColumnOrder, c.xtype as DataType, typ.name as&nbsp; DataTypeName, c.Length, c.isnullable from dbo.syscolumns c inner join dbo.sysobjects t<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\non c.id = t.id<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\ninner join dbo.systypes typ on typ.xtype = c.xtype<br \/>\nwhere OBJECTPROPERTY(t.id, N'IsUserTable') = 1<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\nand t.name='mytable' order by c.colorder;<\/span><\/p>\n<\/blockquote>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">&nbsp;<\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">C# Ado.net\u4ee3\u7801\u793a\u4f8b\uff1a<\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">&nbsp;<\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>1. \u5f97\u5230\u6570\u636e\u5e93\u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">using System.Data.SqlClient;\r\n \r\nprivate void GetStoredProceduresList()\r\n{\r\n    string sql = \"select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name\";\r\n    string connStr = @\"Data Source=(local);Initial Catalog=mydatabase; Integrated Security=True; \r\n\r\nConnection Timeout=1;\";\r\n\r\n \r\n    SqlConnection conn = new SqlConnection(connStr);\r\n    SqlCommand cmd = new SqlCommand(sql, conn);\r\n    cmd.CommandType = CommandType.Text;\r\n \r\n    try\r\n    {\r\n        conn.Open();\r\n \r\n        using (SqlDataReader MyReader = cmd.ExecuteReader())\r\n        {\r\n            while (MyReader.Read())\r\n            {\r\n                \/\/Get stored procedure name\r\n                this.listBox1.Items.Add(MyReader[0].ToString());\r\n            }\r\n        }\r\n    }\r\n    finally\r\n    {\r\n        conn.Close();\r\n    }\r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>2. \u5f97\u5230\u67d0\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u7684\u53c2\u6570\u4fe1\u606f\uff1a(Ado.net\u65b9\u6cd5)<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">using System.Data.SqlClient;\r\n \r\nprivate void GetArguments()\r\n{\r\n    string connStr = @\"Data Source=(local);Initial Catalog=mydatabase; Integrated Security=True; \r\n\r\nConnection Timeout=1;\";\r\n\r\n \r\n    SqlConnection conn = new SqlConnection(connStr);\r\n    SqlCommand cmd = new SqlCommand();\r\n    cmd.Connection = conn;\r\n    cmd.CommandText = \"mystoredprocedurename\";\r\n    cmd.CommandType = CommandType.StoredProcedure;\r\n \r\n    try\r\n    {\r\n        conn.Open();\r\n \r\n        SqlCommandBuilder.DeriveParameters(cmd);\r\n \r\n        foreach (SqlParameter var in cmd.Parameters)\r\n        {\r\n            if (cmd.Parameters.IndexOf(var) == 0) continue;\/\/Skip return value\r\n \r\n            MessageBox.Show((String.Format(\"Param: {0}{1}Type: {2}{1}Direction: {3}\",\r\n               var.ParameterName,\r\n               Environment.NewLine,\r\n               var.SqlDbType.ToString(),\r\n               var.Direction.ToString())));\r\n        }\r\n    }\r\n    finally\r\n    {\r\n        conn.Close();\r\n    }\r\n \r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>3. \u5217\u51fa\u6240\u6709\u6570\u636e\u5e93\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">using System;\r\nusing System.Windows.Forms;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing System.Data;\r\nusing System.Data.SqlClient;\r\n \r\nprivate static string connString = \r\n            \"Persist Security Info=True;timeout=5;Data Source=192.168.1.8;User ID=sa;Password=password\";\r\n \r\n\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u5217\u51fa\u6240\u6709\u6570\u636e\u5e93\r\n\/\/\/ &lt;\/summary&gt;\r\n\/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\npublic string[] GetDatabases()\r\n{\r\n    return GetList(\"SELECT name FROM sysdatabases order by name asc\");\r\n}\r\n \r\nprivate string[] GetList(string sql)\r\n{\r\n    if (String.IsNullOrEmpty(connString)) return null;\r\n \r\n    string connStr = connString;\r\n \r\n    SqlConnection conn = new SqlConnection(connStr);\r\n    SqlCommand cmd = new SqlCommand(sql, conn);\r\n    cmd.CommandType = CommandType.Text;\r\n \r\n    try\r\n    {\r\n        conn.Open();\r\n \r\n        List&lt;string&gt; ret = new List&lt;string&gt;();\r\n \r\n        using (SqlDataReader MyReader = cmd.ExecuteReader())\r\n        {\r\n            while (MyReader.Read())\r\n            {\r\n                ret.Add(MyReader[0].ToString());\r\n            }\r\n        }\r\n \r\n        if (ret.Count &gt; 0) return ret.ToArray();\r\n        return null;\r\n    }\r\n    finally\r\n    {\r\n        conn.Close();\r\n    }\r\n}\r\n <\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>4. \u5f97\u5230Table\u8868\u683c\u5217\u8868\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">private static string connString = \r\n  \"Persist Security Info=True;timeout=5;Data Source=192.168.1.8;Initial Catalog=myDb;User ID=sa;Password=password\";\r\n \r\n\/* select name from sysobjects where xtype='u'  ---\r\n   C = CHECK \u7ea6\u675f\r\n   D = \u9ed8\u8ba4\u503c\u6216 DEFAULT \u7ea6\u675f\r\n   F = FOREIGN KEY \u7ea6\u675f\r\n   L = \u65e5\u5fd7\r\n   FN = \u6807\u91cf\u51fd\u6570\r\n   IF = \u5185\u5d4c\u8868\u51fd\u6570\r\n   P = \u5b58\u50a8\u8fc7\u7a0b\r\n   PK = PRIMARY KEY \u7ea6\u675f\uff08\u7c7b\u578b\u662f K\uff09\r\n   RF = \u590d\u5236\u7b5b\u9009\u5b58\u50a8\u8fc7\u7a0b\r\n   S = \u7cfb\u7edf\u8868\r\n   TF = \u8868\u51fd\u6570\r\n   TR = \u89e6\u53d1\u5668\r\n   U = \u7528\u6237\u8868\r\n   UQ = UNIQUE \u7ea6\u675f\uff08\u7c7b\u578b\u662f K\uff09\r\n   V = \u89c6\u56fe\r\n   X = \u6269\u5c55\u5b58\u50a8\u8fc7\u7a0b\r\n   *\/\r\n \r\npublic string[] GetTableList()\r\n{\r\n    return GetList(\"SELECT name FROM sysobjects WHERE xtype='U' AND name   &lt;&gt;   'dtproperties' order by name asc\");\r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>5. \u5f97\u5230View\u89c6\u56fe\u5217\u8868\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">public string[] GetViewList()\r\n{\r\n     return GetList(\"SELECT name FROM sysobjects WHERE xtype='V' AND name   &lt;&gt;   'dtproperties' order by name asc\");\r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>6. \u5f97\u5230Function\u51fd\u6570\u5217\u8868\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">public string[] GetFunctionList()\r\n{\r\n    return GetList(\"SELECT name FROM sysobjects WHERE xtype='FN' AND name   &lt;&gt;   'dtproperties' order by name asc\");\r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>7. \u5f97\u5230\u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">public string[] GetStoredProceduresList()\r\n{\r\n    return GetList(\"select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name asc\");\r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>8. \u5f97\u5230table\u7684\u7d22\u5f15Index\u4fe1\u606f\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">public TreeNode[] GetTableIndex(string tableName)\r\n{\r\n    if (String.IsNullOrEmpty(connString)) return null;\r\n \r\n    List&lt;TreeNode&gt; nodes = new List&lt;TreeNode&gt;();\r\n \r\n    string connStr = connString;\r\n \r\n    SqlConnection conn = new SqlConnection(connStr);\r\n    SqlCommand cmd = new SqlCommand(String.Format(\"exec sp_helpindex {0}\", tableName), conn);\r\n    cmd.CommandType = CommandType.Text;\r\n \r\n    try\r\n    {\r\n        conn.Open();\r\n \r\n        using (SqlDataReader MyReader = cmd.ExecuteReader())\r\n        {\r\n            while (MyReader.Read())\r\n            {\r\n                TreeNode node = new TreeNode(MyReader[0].ToString(), 2, 2);\/*Index name*\/\r\n                node.ToolTipText = String.Format(\"{0}{1}{2}\", MyReader[2].ToString()\/*index keys*\/, Environment.NewLine,\r\n                    MyReader[1].ToString()\/*Description*\/);\r\n                nodes.Add(node);\r\n            }\r\n        }\r\n    }\r\n    finally\r\n    {\r\n        conn.Close();\r\n    }\r\n \r\n    if(nodes.Count&gt;0) return nodes.ToArray ();\r\n    return null;\r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>9. \u5f97\u5230Table\uff0cView\uff0cFunction\uff0c\u5b58\u50a8\u8fc7\u7a0b\u7684\u53c2\u6570\uff0cField\u4fe1\u606f\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">public string[] GetTableFields(string tableName)\r\n{\r\n    return GetList(String.Format(\"select name from syscolumns where id =object_id('{0}')\", tableName));\r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>10. \u5f97\u5230Table\u5404\u4e2aField\u7684\u8be6\u7ec6\u5b9a\u4e49\uff1a<\/strong><\/p>\n<pre class=\"brush:c#; toolbar: true; auto-links: true;\">public TreeNode[] GetTableFieldsDefinition(string TableName)\r\n{\r\n    if (String.IsNullOrEmpty(connString)) return null;\r\n \r\n    string connStr = connString;\r\n \r\n    List&lt;TreeNode&gt; nodes = new List&lt;TreeNode&gt;();\r\n \r\n    SqlConnection conn = new SqlConnection(connStr);\r\n    SqlCommand cmd = new SqlCommand(String.Format(\"select a.name,b.name,a.length,a.isnullable from syscolumns a,systypes b,sysobjects d where a.xtype=b.xusertype and a.id=d.id and d.xtype='U' and a.id =object_id('{0}')\",\r\n                  TableName), conn);\r\n    cmd.CommandType = CommandType.Text;\r\n              \r\n    try\r\n    {\r\n        conn.Open();\r\n \r\n        using (SqlDataReader MyReader = cmd.ExecuteReader())\r\n        {\r\n            while (MyReader.Read())\r\n            {\r\n                TreeNode node = new TreeNode(MyReader[0].ToString(), 2, 2);\r\n                node.ToolTipText = String.Format(\"Type: {0}{1}Length: {2}{1}Nullable: {3}\", MyReader[1].ToString()\/*type*\/, Environment.NewLine,\r\n                    MyReader[2].ToString()\/*length*\/, Convert.ToBoolean(MyReader[3]));\r\n                nodes.Add(node);\r\n            }\r\n        }\r\n \r\n        if (nodes.Count &gt; 0) return nodes.ToArray();\r\n        return null;\r\n    }\r\n    finally\r\n    {\r\n        conn.Close();\r\n    }\r\n \r\n}<\/pre>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>11. \u5f97\u5230\u5b58\u50a8\u8fc7\u7a0b\u5185\u5bb9\uff1a<\/strong><\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u7c7b\u4f3c\u201c8. \u5f97\u5230table\u7684\u7d22\u5f15Index\u4fe1\u606f\u201d\uff0cSQL\u8bed\u53e5\u4e3a\uff1a<strong>EXEC Sp_HelpText '\u5b58\u50a8\u8fc7\u7a0b\u540d'<\/strong><\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">&nbsp;<\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\"><strong>12. \u5f97\u5230\u89c6\u56feView\u5b9a\u4e49\uff1a<\/strong><\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u7c7b\u4f3c\u201c8. \u5f97\u5230table\u7684\u7d22\u5f15Index\u4fe1\u606f\u201d\uff0cSQL\u8bed\u53e5\u4e3a\uff1a<strong>EXEC Sp_HelpText '\u89c6\u56fe\u540d'<\/strong><\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">&nbsp;<\/p>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">(\u4ee5\u4e0a\u4ee3\u7801\u53ef\u7528\u4e8e\u4ee3\u7801\u751f\u6210\u5668\uff0c\u5217\u51fa\u6570\u636e\u5e93\u7684\u6240\u6709\u4fe1\u606f)<\/p>\n","protected":false},"excerpt":{"rendered":"<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u5f97\u5230\u6570\u636e\u5e93\u5b58\u50a8\u8fc7\u7a0b\u5217\u8868\uff1a<\/p>\n<blockquote style=\"background-image:none;border-bottom:#efefef 2px solid;border-left:#efefef 2px solid;padding-bottom:4px;widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:0px;padding-left:4px;letter-spacing:normal;padding-right:4px;font:italic 12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#333333;border-top:#efefef 2px solid;border-right:#efefef 2px solid;word-spacing:0px;padding-top:4px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\n<p style=\"text-indent:0px;margin:10px auto;\"><span style=\"font-family:'Courier New';font-size:x-small;\">select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name<\/span><\/p>\n<\/blockquote>\n<p style=\"widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:10px auto;letter-spacing:normal;font:12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#000000;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\u5f97\u5230\u67d0\u4e2a\u5b58\u50a8\u8fc7\u7a0b\u7684\u53c2\u6570\u4fe1\u606f\uff1a(SQL\u65b9\u6cd5)<\/p>\n<blockquote style=\"background-image:none;border-bottom:#efefef 2px solid;border-left:#efefef 2px solid;padding-bottom:4px;widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;margin:0px;padding-left:4px;letter-spacing:normal;padding-right:4px;font:italic 12px\/18px Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif;white-space:normal;orphans:2;color:#333333;border-top:#efefef 2px solid;border-right:#efefef 2px solid;word-spacing:0px;padding-top:4px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;\">\n<p style=\"text-indent:0px;margin:10px auto;\"><span style=\"font-family:'Courier New';font-size:x-small;\">select * from syscolumns where ID in&nbsp;&nbsp;&nbsp;<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\n&nbsp; (SELECT id FROM sysobjects as a&nbsp;<span class=\"Apple-converted-space\">&nbsp;<\/span><br \/>\n&nbsp;&nbsp; WHERE OBJECTPROPERTY(id, N'IsProcedure') = 1&nbsp;...<\/span><\/p>\n<\/blockquote>\n<p> <a href=\"https:\/\/www.xiaobo.li\/notes\/archives\/299\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[273],"tags":[113,3],"class_list":["post-299","post","type-post","status-publish","format-standard","hentry","category-article","tag-server","tag-SQL"],"_links":{"self":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/comments?post=299"}],"version-history":[{"count":0,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/299\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/media?parent=299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/categories?post=299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/tags?post=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}