<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_tygwy</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/49282/rss</id><updated>2010-06-03T15:38:11Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/49282/rss"/><entry><id>http://www.cnblogs.com/tygwy/archive/2010/06/03/1751092.html</id><title type="text">不完美的分页存储过程</title><summary type="text">--这是一个通用的分页存储过程if object_id ('bin','p') is not nulldrop proc bingocreate proc bin@cupage int=1,@count int=10,@TABLENAME VARCHAR(20),@COLUMNA VARCHAR(20)asDECLARE @SQL NVARCHAR(1000)SET @SQL = N'SELECT...</summary><published>2010-06-03T15:38:00Z</published><updated>2010-06-03T15:38:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/06/03/1751092.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/06/03/1751092.html"/><content type="html">&lt;p&gt;--这是一个通用的分页存储过程&lt;br /&gt;if object_id ('bin','p') is not null&lt;br /&gt;drop proc bin&lt;br /&gt;go&lt;br /&gt;create proc bin&lt;br /&gt;@cupage int=1,&lt;br /&gt;@count int=10,&lt;br /&gt;@TABLENAME VARCHAR(20),&lt;br /&gt;@COLUMNA VARCHAR(20)&lt;br /&gt;as&lt;br /&gt;DECLARE @SQL NVARCHAR(1000)&lt;br /&gt;SET @SQL = N'SELECT TOP '+CAST(@COUNT AS NVARCHAR(3))&lt;br /&gt;SET @SQL = @SQL + N' * FROM '+@TABLENAME +' WHERE '+@COLuMNA + ' NOT IN( '&lt;br /&gt;SET @SQL = @SQL + N' SELECT TOP '+CAST(((@CUPAGE-1)*@COUNT) AS NVARCHAR(3))&lt;br /&gt;SET @SQL = @SQL + @COLUMNA +N' FROM ' +@TABLENAME+' )'&lt;/p&gt;&#xD;
&lt;p&gt;EXEC (@SQL)&lt;br /&gt;&amp;nbsp;GO&lt;br /&gt;exec bin 1,3,'wu','uid'&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;select top 3 * from wu&lt;br /&gt;select top 3 * from wu where uid not in(select top 1&amp;nbsp; uid from wu)&lt;/p&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1751092.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/06/03/1751092.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/05/20/1739848.html</id><title type="text">基于字符串数组创建一组单选按钮</title><summary type="text">private void button1_Click(object sender, System.EventArgs e){ string[] stringArray = new string[3]; stringArray[0] = "Yes"; stringArray[1] = "No"; stringArray[2] = "Maybe"; System.Windows.Forms.Radio...</summary><published>2010-05-20T02:49:00Z</published><updated>2010-05-20T02:49:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/05/20/1739848.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/05/20/1739848.html"/><content type="html">&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string&lt;/span&gt;[] stringArray = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt;[3];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stringArray[0] = &lt;span style="color: #a31515"&gt;"Yes"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stringArray[1] = &lt;span style="color: #a31515"&gt;"No"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stringArray[2] = &lt;span style="color: #a31515"&gt;"Maybe"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Windows.Forms.RadioButton[] radioButtons = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;new&lt;/span&gt; System.Windows.Forms.RadioButton[3];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;for&lt;/span&gt; (&lt;span style="color: blue"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; radioButtons[i] = &lt;span style="color: blue"&gt;new&lt;/span&gt; RadioButton();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; radioButtons[i].Text = stringArray[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; radioButtons[i].Location = &lt;span style="color: blue"&gt;new&lt;/span&gt; System.Drawing.Point(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10, 10 + i * 20);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;this&lt;/span&gt;.Controls.Add(radioButtons[i]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1739848.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/05/20/1739848.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/05/02/1725869.html</id><title type="text">关于并发的控制</title><summary type="text">关于并发的控制，有几种级别，worm_jack提到的并发应该是类似如下：用户A正在修改一条记录，在修改完保存之前的一瞬间，该记录被用户B删除，在这种情况下用户A的保存操作将会出现异常。这种问题的处理方式有几种：1）在保存操作Save()方法中，增加对该记录存在与否的判断IsExist()，如果不存在则给出提示；2）在保存操作Save()方法中，通过try...catch...捕获异常，根据异常类型...</summary><published>2010-05-01T23:15:00Z</published><updated>2010-05-01T23:15:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/05/02/1725869.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/05/02/1725869.html"/><content type="html">&lt;div  id="postmessage_44414"&gt;关于并发的控制，有几种级别，worm_jack提到的并发应该是类似如下：&lt;br /&gt;用户A正在修改一条记录，在修改完保存之前的一瞬间，该记录被用户B删除，在这种情况下用户A的保存操作将会出现异常。&lt;br /&gt;这种问题的处理方式有几种：&lt;br /&gt;1）在保存操作Save()方法中，增加对该记录存在与否的判断IsExist()，如果不存在则给出提示；&lt;br /&gt;2）在保存操作Save()方法中，通过try...catch...捕获异常，根据异常类型来判断是否为该记录被删除，给出提示；&lt;br /&gt;3）在删除操作Delete()方法中，通过判断是否该记录正在被使用，如果正在被使用，则不允许删除；&lt;/div&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1725869.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/05/02/1725869.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/04/28/1723054.html</id><title type="text">C#递归算法</title><summary type="text">C#递归算法C# 递归算法！收藏午以后备用 首先碰到的是这样的一首题目：计算数组{1,1,2,3,5,8.......} 第30位值，不用递归，我写出了以下这样的代码： static void Main(string[] args) ...{ int[] num=new int[30]; num[0]=1; num[1]=1; int first=num[0]; int second=num[1]...</summary><published>2010-04-28T08:06:00Z</published><updated>2010-04-28T08:06:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/04/28/1723054.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/04/28/1723054.html"/><content type="html">&lt;h3 &gt;C#递归算法&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p &gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;C# 递归算法！收藏午以后备用&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;首先碰到的是这样的一首题目：计算数组{1,1,2,3,5,8.......} 第30位值，不用递归，我写出了以下这样的代码：&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;static void Main(string[] args)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;int[] num=new int[30];&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;num[0]=1;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;num[1]=1;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;int first=num[0];&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;int second=num[1];&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;for (int i = 2; i &amp;lt; num.Length; i++)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;num[i] = first + second;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;first = second;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;second = num[i];&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.WriteLine(num[29]);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.ReadLine();&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;写出来，十分的累赘，于是改为归递算法来写，一目了然，十分明了。以下是代码：&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;static void Main(string[] args)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.WriteLine(Process1(30));&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.ReadLine();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;public static int Process1(int i)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;//计算数组{1,1,2,3,5,8.......} 第30位值&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;if (i == 0) return 0;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;if (i == 1) return 1;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;else&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;return Process1(i - 1) + Process1(i - 2);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;做了一些练习：&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;1. 计算1+2+3+4+...+100的值&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;static void Main(string[] args)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.WriteLine(Process2(100));&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.ReadLine();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;public static int Process2(int i)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;//计算1+2+3+4+...+100的值&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;if (i == 0) return 0;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;return Process2(i - 1) + i;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;2. 计算1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9的值&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;static void Main(string[] args)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.WriteLine(Process3(9) - Process3(8));&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.ReadLine();&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;public static int Process3(int i)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;//计算1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9的值&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;if (i == 0) return 1;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;if (i == 1) return 2;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;else return Process3(i - 2) + i;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;3.汉诺塔问题&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;static void Main(string[] args)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Hanoi(5, 'A', 'B', 'C');&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.ReadLine();&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;public static void Hanoi(int n ,char A, char B, char C)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;//汉诺塔问题&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;//将n个盘子从A座借助B座，移到C座&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;if (n == 1) Move(A, C);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;else&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Hanoi(n - 1, A, C, B);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Move(A, C);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Hanoi(n - 1, B, A, C);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;public static void Move(char startPlace, char endPlace)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.WriteLine("Move {0} To {1}",startPlace,endPlace);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;4.用递归法将一个整数n转换成字符串，例如，输入483,就输出字符串"483".n的位数不确定，可以是任意位数的整数。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;static void Main(string[] args)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;IntToString(483, "");&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;Console.ReadLine();&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;public static void IntToString(int input,String output)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;//用递归法将一个整数n转换成字符串，例如，输入483,就输出字符串"483".n的位数不确定，可以是任意位数的整数。&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;//&amp;nbsp;&amp;nbsp; String output = "";&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;output = input % 10+output;&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;if (input / 10 != 0)&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;...{&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;IntToString(input / 10,output);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;else Console.WriteLine(output);&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;}&lt;/p&gt;&#xD;
&lt;p style="text-indent: 2em"&gt;&lt;/p&gt;&lt;/div&gt; &lt;img src="http://www.cnblogs.com/tygwy/aggbug/1723054.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/04/28/1723054.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/04/17/1714388.html</id><title type="text">经典SQL----行列转换</title><summary type="text">*标题：普通行列转换(version 2.0)说明：普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法，version 2.0增加sql server 2005的有关写法。问题：假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物理 94想变成(得到如下结果)： 姓名 语文...</summary><published>2010-04-17T12:02:00Z</published><updated>2010-04-17T12:02:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714388.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714388.html"/><content type="html">&lt;p&gt;*&lt;br /&gt;标题：普通行列转换(version 2.0)&lt;br /&gt;说明：普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法，version 2.0增加sql server 2005的有关写法。&lt;/p&gt;&#xD;
&lt;p&gt;问题：假设有张学生成绩表(tb)如下:&lt;br /&gt;姓名 课程 分数&lt;br /&gt;张三 语文 74&lt;br /&gt;张三 数学 83&lt;br /&gt;张三 物理 93&lt;br /&gt;李四 语文 74&lt;br /&gt;李四 数学 84&lt;br /&gt;李四 物理 94&lt;br /&gt;想变成(得到如下结果)： &lt;br /&gt;姓名 语文 数学 物理 &lt;br /&gt;---- ---- ---- ----&lt;br /&gt;李四 74&amp;nbsp;&amp;nbsp; 84&amp;nbsp;&amp;nbsp; 94&lt;br /&gt;张三 74&amp;nbsp;&amp;nbsp; 83&amp;nbsp;&amp;nbsp; 93&lt;br /&gt;-------------------&lt;br /&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)&lt;br /&gt;insert into tb values(''张三'' , ''语文'' , 74)&lt;br /&gt;insert into tb values(''张三'' , ''数学'' , 83)&lt;br /&gt;insert into tb values(''张三'' , ''物理'' , 93)&lt;br /&gt;insert into tb values(''李四'' , ''语文'' , 74)&lt;br /&gt;insert into tb values(''李四'' , ''数学'' , 84)&lt;br /&gt;insert into tb values(''李四'' , ''物理'' , 94)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)&lt;br /&gt;select 姓名 as 姓名 ,&lt;br /&gt;&amp;nbsp; max(case 课程 when ''语文'' then 分数 else 0 end) 语文,&lt;br /&gt;&amp;nbsp; max(case 课程 when ''数学'' then 分数 else 0 end) 数学,&lt;br /&gt;&amp;nbsp; max(case 课程 when ''物理'' then 分数 else 0 end) 物理&lt;br /&gt;from tb&lt;br /&gt;group by 姓名&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)&lt;br /&gt;declare @sql varchar(8000)&lt;br /&gt;set @sql = ''select 姓名 ''&lt;br /&gt;select @sql = @sql + '' , max(case 课程 when '''''' + 课程 + '''''' then 分数 else 0 end) ['' + 课程 + '']''&lt;br /&gt;from (select distinct 课程 from tb) as a&lt;br /&gt;set @sql = @sql + '' from tb group by 姓名''&lt;br /&gt;e xec(@sql)&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2005 静态SQL。&lt;br /&gt;select * from (select * from tb) a pivot (max(分数) for 课程 in (语文,数学,物理)) b&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2005 动态SQL。&lt;br /&gt;declare @sql varchar(8000)&lt;br /&gt;select @sql = isnull(@sql + '','' , '''') + 课程 from tb group by 课程&lt;br /&gt;e xec (''select * from (select * from tb) a pivot (max(分数) for 课程 in ('' + @sql + '')) b'')&lt;/p&gt;&#xD;
&lt;p&gt;---------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;/*&lt;br /&gt;问题：在上述结果的基础上加平均分，总分，得到如下结果：&lt;br /&gt;姓名 语文 数学 物理 平均分 总分 &lt;br /&gt;---- ---- ---- ---- ------ ----&lt;br /&gt;李四 74&amp;nbsp;&amp;nbsp; 84&amp;nbsp;&amp;nbsp; 94&amp;nbsp;&amp;nbsp; 84.00&amp;nbsp; 252&lt;br /&gt;张三 74&amp;nbsp;&amp;nbsp; 83&amp;nbsp;&amp;nbsp; 93&amp;nbsp;&amp;nbsp; 83.33&amp;nbsp; 250&lt;br /&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2000 静态SQL。&lt;br /&gt;select 姓名 姓名,&lt;br /&gt;&amp;nbsp; max(case 课程 when ''语文'' then 分数 else 0 end) 语文,&lt;br /&gt;&amp;nbsp; max(case 课程 when ''数学'' then 分数 else 0 end) 数学,&lt;br /&gt;&amp;nbsp; max(case 课程 when ''物理'' then 分数 else 0 end) 物理,&lt;br /&gt;&amp;nbsp; cast(avg(分数*1.0) as decimal(18,2)) 平均分,&lt;br /&gt;&amp;nbsp; sum(分数) 总分&lt;br /&gt;from tb&lt;br /&gt;group by 姓名&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2000 动态SQL。&lt;br /&gt;declare @sql varchar(8000)&lt;br /&gt;set @sql = ''select 姓名 ''&lt;br /&gt;select @sql = @sql + '' , max(case 课程 when '''''' + 课程 + '''''' then 分数 else 0 end) ['' + 课程 + '']''&lt;br /&gt;from (select distinct 课程 from tb) as a&lt;br /&gt;set @sql = @sql + '' , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名''&lt;br /&gt;e xec(@sql)&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2005 静态SQL。&lt;br /&gt;select m.* , n.平均分 , n.总分 from&lt;br /&gt;(select * from (select * from tb) a pivot (max(分数) for 课程 in (语文,数学,物理)) b) m,&lt;br /&gt;(select 姓名 , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名) n&lt;br /&gt;where m.姓名 = n.姓名&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2005 动态SQL。&lt;br /&gt;declare @sql varchar(8000)&lt;br /&gt;select @sql = isnull(@sql + '','' , '''') + 课程 from tb group by 课程&lt;br /&gt;e xec (''select m.* , n.平均分 , n.总分 from&lt;br /&gt;(select * from (select * from tb) a pivot (max(分数) for 课程 in ('' + @sql + '')) b) m , &lt;br /&gt;(select 姓名 , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名) n&lt;br /&gt;where m.姓名 = n.姓名'')&lt;/p&gt;&#xD;
&lt;p&gt;d rop table tb&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;------------------&lt;br /&gt;------------------&lt;/p&gt;&#xD;
&lt;p&gt;/*&lt;br /&gt;问题：如果上述两表互相换一下：即表结构和数据为：&lt;br /&gt;姓名 语文 数学 物理&lt;br /&gt;张三 74　　83　　93&lt;br /&gt;李四 74　　84　　94&lt;br /&gt;想变成(得到如下结果)： &lt;br /&gt;姓名 课程 分数 &lt;br /&gt;---- ---- ----&lt;br /&gt;李四 语文 74&lt;br /&gt;李四 数学 84&lt;br /&gt;李四 物理 94&lt;br /&gt;张三 语文 74&lt;br /&gt;张三 数学 83&lt;br /&gt;张三 物理 93&lt;br /&gt;--------------&lt;br /&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;create table tb(姓名 varchar(10) , 语文 int , 数学 int , 物理 int)&lt;br /&gt;insert into tb values(''张三'',74,83,93)&lt;br /&gt;insert into tb values(''李四'',74,84,94)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2000 静态SQL。&lt;br /&gt;select * from&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;select 姓名 , 课程 = ''语文'' , 分数 = 语文 from tb &lt;br /&gt;&amp;nbsp;union all&lt;br /&gt;&amp;nbsp;select 姓名 , 课程 = ''数学'' , 分数 = 数学 from tb&lt;br /&gt;&amp;nbsp;union all&lt;br /&gt;&amp;nbsp;select 姓名 , 课程 = ''物理'' , 分数 = 物理 from tb&lt;br /&gt;) t&lt;br /&gt;order by 姓名 , case 课程 when ''语文'' then 1 when ''数学'' then 2 when ''物理'' then 3 end&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2000 动态SQL。&lt;br /&gt;--调用系统表动态生态。&lt;br /&gt;declare @sql varchar(8000)&lt;br /&gt;select @sql = isnull(@sql + '' union all '' , '''' ) + '' select 姓名 , [课程] = '' + quotename(Name , '''''''') + '' , [分数] = '' + quotename(Name) + '' from tb''&lt;br /&gt;from syscolumns &lt;br /&gt;where name! = N''姓名'' and ID = object_id(''tb'') --表名tb，不包含列名为姓名的其它列&lt;br /&gt;order by colid asc&lt;br /&gt;e xec(@sql + '' order by 姓名 '')&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2005 动态SQL。&lt;br /&gt;select 姓名 , 课程 , 分数 from tb unpivot (分数 for 课程 in([语文] , [数学] , [物理])) t&lt;/p&gt;&#xD;
&lt;p&gt;--SQL SERVER 2005 动态SQL，同SQL SERVER 2000 动态SQL。&lt;/p&gt;&#xD;
&lt;p&gt;--------------------&lt;br /&gt;/*&lt;br /&gt;问题：在上述的结果上加个平均分，总分，得到如下结果：&lt;br /&gt;姓名 课程&amp;nbsp;&amp;nbsp; 分数&lt;br /&gt;---- ------ ------&lt;br /&gt;李四 语文&amp;nbsp;&amp;nbsp; 74.00&lt;br /&gt;李四 数学&amp;nbsp;&amp;nbsp; 84.00&lt;br /&gt;李四 物理&amp;nbsp;&amp;nbsp; 94.00&lt;br /&gt;李四 平均分 84.00&lt;br /&gt;李四 总分&amp;nbsp;&amp;nbsp; 252.00&lt;br /&gt;张三 语文&amp;nbsp;&amp;nbsp; 74.00&lt;br /&gt;张三 数学&amp;nbsp;&amp;nbsp; 83.00&lt;br /&gt;张三 物理&amp;nbsp;&amp;nbsp; 93.00&lt;br /&gt;张三 平均分 83.33&lt;br /&gt;张三 总分&amp;nbsp;&amp;nbsp; 250.00&lt;br /&gt;------------------&lt;br /&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;select * from&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;select 姓名 as 姓名 , 课程 = ''语文'' , 分数 = 语文 from tb &lt;br /&gt;&amp;nbsp;union all&lt;br /&gt;&amp;nbsp;select 姓名 as 姓名 , 课程 = ''数学'' , 分数 = 数学 from tb&lt;br /&gt;&amp;nbsp;union all&lt;br /&gt;&amp;nbsp;select 姓名 as 姓名 , 课程 = ''物理'' , 分数 = 物理 from tb&lt;br /&gt;&amp;nbsp;union all&lt;br /&gt;&amp;nbsp;select 姓名 as 姓名 , 课程 = ''平均分'' , 分数 = cast((语文 + 数学 + 物理)*1.0/3 as decimal(18,2)) from tb&lt;br /&gt;&amp;nbsp;union all&lt;br /&gt;&amp;nbsp;select 姓名 as 姓名 , 课程 = ''总分'' , 分数 = 语文 + 数学 + 物理 from tb&lt;br /&gt;) t&lt;br /&gt;order by 姓名 , case 课程 when ''语文'' then 1 when ''数学'' then 2 when ''物理'' then 3 when ''平均分'' then 4 when ''总分'' then 5 end&lt;/p&gt;&#xD;
&lt;p&gt;d rop table tb&lt;/p&gt;&#xD;
&lt;p&gt;--&amp;gt; 生成测试数据: #DB_info&lt;br /&gt;if object_id(''tempdb.dbo.#DB_info'') is not null d rop table #DB_info&lt;br /&gt;create table #DB_info (sid int,name nvarchar(4),sex nvarchar(2))&lt;br /&gt;insert into #DB_info&lt;br /&gt;select 1,''李明'',''男'' union all&lt;br /&gt;select 2,''王军'',''男'' union all&lt;br /&gt;select 3,''李敏'',''女''&lt;/p&gt;&#xD;
&lt;p&gt;--&amp;gt; 生成测试数据: #db_scores&lt;br /&gt;if object_id(''tempdb.dbo.#db_scores'') is not null d rop table #db_scores&lt;br /&gt;create table #db_scores (sid int,type nvarchar(4),scores int)&lt;br /&gt;insert into #db_scores&lt;br /&gt;select 1,''语文'',80 union all&lt;br /&gt;select 1,''数学'',90 union all&lt;br /&gt;select 2,''语文'',85 union all&lt;br /&gt;select 2,''数学'',90 union all&lt;br /&gt;select 3,''语文'',75 union all&lt;br /&gt;select 3,''数学'',85&lt;/p&gt;&#xD;
&lt;p&gt;declare @sql nvarchar(4000)&lt;br /&gt;set @sql=''select a.sid,a.name,a.sex''&lt;br /&gt;select @sql=@sql+'',max(case when b.type=''''''+type+'''''' then b.scores else 0 end) [''+type+'']''&lt;br /&gt;from (select distinct type from #db_scores) t&lt;/p&gt;&#xD;
&lt;p&gt;e xec (@sql+'' from #DB_info a left outer join #db_scores b on a.sid=b.sid group by a.sid,a.name,a.sex'')&lt;/p&gt;&#xD;
&lt;p&gt;/*&lt;br /&gt;sid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name sex&amp;nbsp; 数学&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 语文&lt;br /&gt;----------- ---- ---- ----------- -----------&lt;br /&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 李明&amp;nbsp;&amp;nbsp; 男&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&lt;br /&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 王军&amp;nbsp;&amp;nbsp; 男&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 85&lt;br /&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 李敏&amp;nbsp;&amp;nbsp; 女&amp;nbsp;&amp;nbsp;&amp;nbsp; 85&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 75&lt;/p&gt;&#xD;
&lt;p&gt;(3 行受影响)&lt;br /&gt;*/&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1714388.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714388.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/04/17/1714386.html</id><title type="text">数据库的实现</title><summary type="text">添加数据 insertinto表名(字段1)values(值1)insertintostuinfo(stuname,stuno,stuage)values('张三'，'s25010'，'22')&amp;gt;[2]更新数据update表名set字段1=值1，&amp;#8230;&amp;#8230;&amp;#8230;，where（条件）updatestuinfosetstuage=25wherestuname='张三'&amp;...</summary><published>2010-04-17T11:59:00Z</published><updated>2010-04-17T11:59:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714386.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714386.html"/><content type="html">添加数据 &#xD;
&lt;p&gt;insert&amp;nbsp;into&amp;nbsp;表名&amp;nbsp;(字段1)&amp;nbsp;values(值1)&lt;br /&gt;insert&amp;nbsp;into&amp;nbsp;stuinfo&amp;nbsp;(stuname,stuno,stuage)&amp;nbsp;values&amp;nbsp;('张三'，'s25010'，'22')&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;gt;[2]更新数据&lt;/p&gt;&#xD;
&lt;p&gt;update&amp;nbsp;表名&amp;nbsp;set&amp;nbsp;字段1=值1，&amp;#8230;&amp;#8230;&amp;#8230;，where&amp;nbsp;（条件）&lt;br /&gt;update&amp;nbsp;stuinfo&amp;nbsp;set&amp;nbsp;stuage&amp;nbsp;=&amp;nbsp;25&amp;nbsp;where&amp;nbsp;stuname&amp;nbsp;=&amp;nbsp;'张三'&lt;/p&gt;&#xD;
&lt;p&gt;&amp;gt;[3]查询数据&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;字段1，字段2，&amp;#8230;&amp;#8230;&amp;#8230;，from&amp;nbsp;表名&amp;nbsp;where&amp;nbsp;条件&amp;nbsp;order&amp;nbsp;by&amp;nbsp;字段名&lt;br /&gt;select&amp;nbsp;stuname,stuno&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;where&amp;nbsp;stuage&amp;nbsp;&amp;lt;&amp;nbsp;25&amp;nbsp;order&amp;nbsp;by&amp;nbsp;stuno&lt;/p&gt;&#xD;
&lt;p&gt;&amp;gt;[4]删除数据&lt;/p&gt;&#xD;
&lt;p&gt;delete&amp;nbsp;from&amp;nbsp;表名&amp;nbsp;where&amp;nbsp;条件&lt;br /&gt;delete&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;where&amp;nbsp;stuage&amp;nbsp;&amp;lt;&amp;nbsp;20&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[5]创造数据库&lt;/p&gt;&#xD;
&lt;p&gt;create&amp;nbsp;database&amp;nbsp;studb&lt;br /&gt;on&amp;nbsp;primary&lt;br /&gt;(&lt;br /&gt;name&amp;nbsp;=&amp;nbsp;'studb_data',-----主数据文件的逻辑名&lt;br /&gt;filename&amp;nbsp;=&amp;nbsp;'D:\project\studb_data.mdf',-----主数据文件的物理名&lt;br /&gt;size&amp;nbsp;=&amp;nbsp;5mb,-----主数据文件的初始大小&lt;br /&gt;maxsize&amp;nbsp;=&amp;nbsp;100mb,-----主数据文件增长的最大值&lt;br /&gt;filegrowth&amp;nbsp;=&amp;nbsp;15%-----主数据文件的增长率&lt;br /&gt;)&lt;br /&gt;log&amp;nbsp;on&lt;br /&gt;(&lt;br /&gt;name&amp;nbsp;=&amp;nbsp;'studb_log',&lt;br /&gt;filename&amp;nbsp;=&amp;nbsp;'D:\project\studb_log.ldf',&lt;br /&gt;size&amp;nbsp;=&amp;nbsp;5mb,&lt;br /&gt;filegrowth&amp;nbsp;=&amp;nbsp;1mb&lt;br /&gt;)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[6]创建多个数据文件和多个日志文件&lt;/p&gt;&#xD;
&lt;p&gt;create&amp;nbsp;database&amp;nbsp;employees&lt;br /&gt;on&amp;nbsp;primary&lt;br /&gt;(&lt;br /&gt;name&amp;nbsp;=&amp;nbsp;'employee1',&lt;br /&gt;filename&amp;nbsp;=&amp;nbsp;'D:\project\employee1_data.mdf',&lt;br /&gt;size&amp;nbsp;=&amp;nbsp;5mb,&lt;br /&gt;filegrowth&amp;nbsp;=&amp;nbsp;10%&lt;br /&gt;),&lt;br /&gt;(&lt;br /&gt;name&amp;nbsp;=&amp;nbsp;'employee2',&lt;br /&gt;filename&amp;nbsp;=&amp;nbsp;'D:\project\employee2_data.ndf'&lt;br /&gt;size&amp;nbsp;=&amp;nbsp;20mb,&lt;br /&gt;maxsize&amp;nbsp;=&amp;nbsp;10%,&lt;br /&gt;filegrowth&amp;nbsp;=&amp;nbsp;1&lt;br /&gt;)&lt;br /&gt;log&amp;nbsp;on&lt;br /&gt;(&lt;br /&gt;name&amp;nbsp;=&amp;nbsp;'employeelog1',&lt;br /&gt;filename&amp;nbsp;=&amp;nbsp;'D:\project\employeelog1_log.ldf',&lt;br /&gt;size&amp;nbsp;=&amp;nbsp;10mb,&lt;br /&gt;filegrowth&amp;nbsp;=&amp;nbsp;1&lt;br /&gt;)&lt;br /&gt;(&lt;br /&gt;name&amp;nbsp;=&amp;nbsp;'employeelog2',&lt;br /&gt;filename&amp;nbsp;=&amp;nbsp;'D:\project\employeelog2_log.ldf',&lt;br /&gt;size&amp;nbsp;=&amp;nbsp;10mb,&lt;br /&gt;maxsize&amp;nbsp;=&amp;nbsp;50mb,&lt;br /&gt;filegrowth&amp;nbsp;=&amp;nbsp;1&lt;br /&gt;)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[7]删除数据库&lt;/p&gt;&#xD;
&lt;p&gt;drop&amp;nbsp;database&amp;nbsp;数据库名&lt;br /&gt;drop&amp;nbsp;database&amp;nbsp;studb&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;master-----以便访问SYSDATABASES表&lt;br /&gt;go&lt;br /&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;sysdatabases&amp;nbsp;where&amp;nbsp;name&amp;nbsp;=&amp;nbsp;'studb')&lt;br /&gt;drop&amp;nbsp;database&amp;nbsp;studb&lt;br /&gt;create&amp;nbsp;database&amp;nbsp;studb&lt;br /&gt;on&amp;nbsp;primary&lt;br /&gt;(&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;略&amp;#8230;&amp;#8230;&amp;#8230;&lt;br /&gt;)&lt;br /&gt;log&amp;nbsp;on&lt;br /&gt;(&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;略&amp;#8230;&amp;#8230;&amp;#8230;&lt;br /&gt;)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[8]创建表&lt;/p&gt;&#xD;
&lt;p&gt;create&amp;nbsp;table&amp;nbsp;表名&lt;br /&gt;(&lt;br /&gt;字段1&amp;nbsp;数据类型&amp;nbsp;列的特征&lt;br /&gt;字段2&amp;nbsp;数据类型&amp;nbsp;列的特征&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&lt;br /&gt;)&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;create&amp;nbsp;table&amp;nbsp;stuinfo&lt;br /&gt;(&lt;br /&gt;stuname&amp;nbsp;varchar(20)&amp;nbsp;not&amp;nbsp;null,&lt;br /&gt;stuno&amp;nbsp;char(6)&amp;nbsp;not&amp;nbsp;null,&lt;br /&gt;stuage&amp;nbsp;int&amp;nbsp;not&amp;nbsp;null,&lt;br /&gt;stuid&amp;nbsp;numeric(18,0),-----身份证号，numeric(18,0)代表18位数字，小数位数为0&lt;br /&gt;stuseat&amp;nbsp;smallint&amp;nbsp;identity(1,1),-----座位号，自动编号（标识列），从1开始递增&lt;br /&gt;stuaddress&amp;nbsp;text&lt;br /&gt;)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[9]删除表&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;sysobject&amp;nbsp;where&amp;nbsp;name&amp;nbsp;=&amp;nbsp;'stuinfo')&lt;br /&gt;drop&amp;nbsp;table&amp;nbsp;stuinfo&lt;br /&gt;create&amp;nbsp;table&amp;nbsp;stuinfo&lt;br /&gt;(&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;略&amp;#8230;&amp;#8230;&amp;#8230;&lt;br /&gt;)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[10]创建和删除约束&lt;/p&gt;&#xD;
&lt;p&gt;1.&amp;nbsp;主键约束(primary&amp;nbsp;key&amp;nbsp;constraint):要求主键列数据唯一，并且不允许为空&lt;br /&gt;2.&amp;nbsp;唯一约束(unique&amp;nbsp;constraint):要求该列唯一，允许为空，但只能出现一个空值&lt;br /&gt;3.&amp;nbsp;检查约束(check&amp;nbsp;constraint):某列取值范围限制，格式限制等&amp;#8230;&lt;br /&gt;4.&amp;nbsp;默认约束(default&amp;nbsp;constraint):某列的默认值&lt;br /&gt;5.&amp;nbsp;外键约束(foreign&amp;nbsp;key&amp;nbsp;constraint):用于在俩表间建立关系，需要指定引用主表的哪列&lt;/p&gt;&#xD;
&lt;p&gt;添加表约束&lt;br /&gt;alter&amp;nbsp;table&amp;nbsp;表名&lt;br /&gt;add&amp;nbsp;constraint&amp;nbsp;约束名&amp;nbsp;约束类型&amp;nbsp;具体的约束说明&lt;/p&gt;&#xD;
&lt;p&gt;alter&amp;nbsp;table&amp;nbsp;stuinfo&lt;br /&gt;add&amp;nbsp;constraint&amp;nbsp;pk_stuno&amp;nbsp;primary&amp;nbsp;key&amp;nbsp;(stuno)&lt;/p&gt;&#xD;
&lt;p&gt;删除表约束&lt;br /&gt;alter&amp;nbsp;table&amp;nbsp;表名&lt;br /&gt;drop&amp;nbsp;constraint&amp;nbsp;约束名&lt;/p&gt;&#xD;
&lt;p&gt;alter&amp;nbsp;table&amp;nbsp;stuinfo&lt;br /&gt;drop&amp;nbsp;constraint&amp;nbsp;pk_stuno&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[11]创建登陆帐户&lt;/p&gt;&#xD;
&lt;p&gt;添加windows登陆帐户&lt;br /&gt;exec&amp;nbsp;sp_grantlogin&amp;nbsp;'windows域名'&lt;br /&gt;exec&amp;nbsp;sp_grantlogin&amp;nbsp;'kongjian\monvb'-----windows&amp;nbsp;用户为kongjian\monvb,kongjian表示域&lt;/p&gt;&#xD;
&lt;p&gt;添加SQL登陆帐户&lt;br /&gt;exec&amp;nbsp;sp_addlogin&amp;nbsp;'帐户名'，'密码'&lt;br /&gt;exec&amp;nbsp;sp_addlogin&amp;nbsp;'zhangsan','123'&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[12]创建数据库用户&lt;/p&gt;&#xD;
&lt;p&gt;exec&amp;nbsp;sp_grantdbaccess&amp;nbsp;'登陆帐户','数据库用户'&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;exec&amp;nbsp;sp_grantdbaccess&amp;nbsp;'kongjian\monvb','monvb'&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[13]向数据库用户授权&lt;/p&gt;&#xD;
&lt;p&gt;grant&amp;nbsp;权限&amp;nbsp;on&amp;nbsp;表名&amp;nbsp;to&amp;nbsp;数据库用户&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;grant&amp;nbsp;insert,delete,updata,select&amp;nbsp;on&amp;nbsp;stuinfo&amp;nbsp;to&amp;nbsp;monvb-----为数据库用户monvb授权对表进行增，删，改，查的权限&lt;br /&gt;grant&amp;nbsp;create&amp;nbsp;table&amp;nbsp;to&amp;nbsp;monvb-----为数据库用户monvb授权建表的权限&lt;/p&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1714386.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714386.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/04/17/1714383.html</id><title type="text">MSSQL服务器数据库同步指南</title><summary type="text">MSSQL数据同步利用数据库复制技术实现数据同步更新(来自网络,也是非常完美的教程) 复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术，是将一份数据发布到多个存储站点上的有效方式。使用复制技术，用户可以将一份数据发布到多台服务器上，从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新，从而保证数据的一致性。 SQL复制的基本元...</summary><published>2010-04-17T11:52:00Z</published><updated>2010-04-17T11:52:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714383.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714383.html"/><content type="html">&lt;p&gt;MSSQL数据同步利用数据库复制技术实现数据同步更新(来自网络,也是非常完美的教程) &lt;br /&gt;复制的概念 &lt;br /&gt;复制是将一组数据从一个数据源拷贝到多个数据源的技术，是将一份数据发布到多个存储站点上的有效方式。使用复制技术，用户可以将一份数据发布到多台服务器上，从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新，从而保证数据的一致性。 &lt;br /&gt;SQL复制的基本元素包括 &lt;br /&gt;出版服务器、订阅服务器、分发服务器、出版物、文章 &lt;br /&gt;SQL复制的工作原理 &lt;br /&gt;SQLSERVER主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器，负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器，分发服务器包含有一个分发数据库，可接收数据的所有改变，并保存这些改变，再把这些改变分发给订阅服务器 &lt;br /&gt;SQLSERVER复制技术类型 &lt;br /&gt;SQLSERVER提供了三种复制技术，分别是： &lt;br /&gt;1、快照复制（呆会我们就使用这个） &lt;br /&gt;2、事务复制 &lt;br /&gt;3、合并复制 &lt;br /&gt;只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。 &lt;br /&gt;第一先来配置出版服务器 &lt;br /&gt;(1)选中指定[服务器]节点 &lt;br /&gt;(2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令 &lt;br /&gt;(3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。 &lt;br /&gt;(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution) &lt;br /&gt;第二创建出版物 &lt;br /&gt;(1)选中指定的服务器 &lt;br /&gt;(2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框 &lt;br /&gt;(3)选择要创建出版物的数据库，然后单击[创建发布] &lt;br /&gt;(4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助) &lt;br /&gt;(5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型，SQLSERVER允许在不同的数据库如ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQLSERVER2000"的数据库服务器 &lt;br /&gt;(6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表 &lt;br /&gt;(7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。 &lt;br /&gt;第三设计订阅 &lt;br /&gt;(1)选中指定的订阅服务器 &lt;br /&gt;(2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅] &lt;br /&gt;(3)按照单击[下一步]操作直到系统会提示检查SQLSERVER代理服务的运行状态，执行复制操作的前提条件是SQLSERVER代理服务必须已经启动。 &lt;br /&gt;(4)单击[完成]。完成订阅操作。 &lt;br /&gt;完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢？这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制&amp;#8212;&amp;#8212;发布内容&amp;#8212;&amp;#8212;右键发布内容&amp;#8212;&amp;#8212;属性&amp;#8212;&amp;#8212;击活&amp;#8212;&amp;#8212;状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生，每一分钟，在0：00：00和23：59：59之间。接下来就是判断复制是否成功了打开C:/ProgramFiles/MicrosoftSQLServer/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表&amp;#8212; &lt;br /&gt;一个手工同步的方案 &lt;br /&gt;--定时同步服务器上的数据 &lt;br /&gt;--例子: &lt;br /&gt;--测试环境,SQLServer2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test &lt;br /&gt;--服务器上的表(查询分析器连接到服务器上创建) &lt;br /&gt;createtable[user](idintprimarykey,numbervarchar(4),namevarchar(10)) &lt;br /&gt;go &lt;br /&gt;--以下在局域网(本机操作) &lt;br /&gt;--本机的表,state说明:null表示新增记录,1表示修改过的记录,0表示无变化的记录 &lt;br /&gt;ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[user]')andOBJECTPROPERTY(id,N'IsUserTable')=1) &lt;br /&gt;droptable[user] &lt;br /&gt;GO &lt;br /&gt;createtable[user](idintidentity(1,1),numbervarchar(4),namevarchar(10),statebit) &lt;br /&gt;go &lt;br /&gt;--创建触发器,维护state字段的值 &lt;br /&gt;createtriggert_stateon[user] &lt;br /&gt;afterupdate &lt;br /&gt;as &lt;br /&gt;update[user]setstate=1 &lt;br /&gt;from[user]ajoininsertedbona.id=b.id &lt;br /&gt;wherea.stateisnotnull &lt;br /&gt;go &lt;br /&gt;--为了方便同步处理,创建链接服务器到要同步的服务器 &lt;br /&gt;--这里的远程服务器名为:xz,用户名为:sa,无密码 &lt;br /&gt;ifexists(select1frommaster..sysserverswheresrvname='srv_lnk') &lt;br /&gt;execsp_dropserver'srv_lnk','droplogins' &lt;br /&gt;go &lt;br /&gt;execsp_addlinkedserver'srv_lnk','','SQLOLEDB','xz' &lt;br /&gt;execsp_addlinkedsrvlogin'srv_lnk','false',null,'sa' &lt;br /&gt;go &lt;br /&gt;--创建同步处理的存储过程 &lt;br /&gt;ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_synchro]')andOBJECTPROPERTY(id,N'IsProcedure')=1) &lt;br /&gt;dropprocedure[dbo].[p_synchro] &lt;br /&gt;GO &lt;br /&gt;createprocp_synchro &lt;br /&gt;as &lt;br /&gt;--setXACT_ABORTon &lt;br /&gt;--启动远程服务器的MSDTC服务 &lt;br /&gt;--execmaster..xp_cmdshell'isql/S"xz"/U"sa"/P""/q"execmaster..xp_cmdshell''netstartmsdtc'',no_output"',no_output &lt;br /&gt;--启动本机的MSDTC服务 &lt;br /&gt;--execmaster..xp_cmdshell'netstartmsdtc',no_output &lt;br /&gt;--进行分布事务处理,如果表用标识列做主键,用下面的方法 &lt;br /&gt;--BEGINDISTRIBUTEDTRANSACTION &lt;br /&gt;--同步删除的数据 &lt;br /&gt;deletefromsrv_lnk.test.dbo.[user] &lt;br /&gt;whereidnotin(selectidfrom[user]) &lt;br /&gt;--同步新增的数据 &lt;br /&gt;insertintosrv_lnk.test.dbo.[user] &lt;br /&gt;selectid,number,namefrom[user]wherestateisnull &lt;br /&gt;--同步修改的数据 &lt;br /&gt;updatesrv_lnk.test.dbo.[user]set &lt;br /&gt;number=b.number,name=b.name &lt;br /&gt;fromsrv_lnk.test.dbo.[user]a &lt;br /&gt;join[user]bona.id=b.id &lt;br /&gt;whereb.state=1 &lt;br /&gt;--同步后更新本机的标志 &lt;br /&gt;update[user]setstate=0whereisnull(state,1)=1 &lt;br /&gt;--COMMITTRAN &lt;br /&gt;go &lt;br /&gt;--创建作业,定时执行数据同步的存储过程 &lt;br /&gt;ifexists(SELECT1frommsdb..sysjobswherename='数据处理') &lt;br /&gt;EXECUTEmsdb.dbo.sp_delete_job@job_name='数据处理' &lt;br /&gt;execmsdb..sp_add_job@job_name='数据处理' &lt;br /&gt;--创建作业步骤 &lt;br /&gt;declare@sqlvarchar(800),@dbnamevarchar(250) &lt;br /&gt;select@sql='execp_synchro'--数据处理的命令 &lt;br /&gt;,@dbname=db_name()--执行数据处理的数据库名 &lt;br /&gt;execmsdb..sp_add_jobstep@job_name='数据处理', &lt;br /&gt;@step_name='数据同步', &lt;br /&gt;@subsystem='TSQL', &lt;br /&gt;@database_name=@dbname, &lt;br /&gt;@command=@sql, &lt;br /&gt;@retry_attempts=5,--重试次数 &lt;br /&gt;@retry_interval=5--重试间隔 &lt;br /&gt;--创建调度 &lt;br /&gt;EXECmsdb..sp_add_jobschedule@job_name='数据处理', &lt;br /&gt;@name='时间安排', &lt;br /&gt;@freq_type=4,--每天 &lt;br /&gt;@freq_interval=1,--每天执行一次 &lt;br /&gt;@active_start_time=00000--0点执行 &lt;br /&gt;go&lt;/p&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1714383.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714383.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/04/17/1714376.html</id><title type="text">SQL server入门-3,T-SQL编程</title><summary type="text">&amp;gt;[1]局部变量 declare@namevarchar(8)-----name为变量名，varchar为数据类型局部变量赋值：1.set@name=value2.select@name=valuedeclare@namevarchar(8)set@name='李文才'select*fromstuinfowherestuname=@namedeclare@seatintset@seat=st...</summary><published>2010-04-17T11:47:00Z</published><updated>2010-04-17T11:47:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714376.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714376.html"/><content type="html">&amp;gt;[1]局部变量 &#xD;
&lt;p&gt;declare&amp;nbsp;@name&amp;nbsp;varchar(8)-----name为变量名，varchar为数据类型&lt;/p&gt;&#xD;
&lt;p&gt;局部变量赋值：&lt;/p&gt;&#xD;
&lt;p&gt;1.&amp;nbsp;set&amp;nbsp;@name&amp;nbsp;=&amp;nbsp;value&lt;br /&gt;2.&amp;nbsp;select&amp;nbsp;@name&amp;nbsp;=&amp;nbsp;value&lt;/p&gt;&#xD;
&lt;p&gt;declare&amp;nbsp;@name&amp;nbsp;varchar(8)&lt;br /&gt;set&amp;nbsp;@name&amp;nbsp;=&amp;nbsp;'李文才'&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;where&amp;nbsp;stuname&amp;nbsp;=&amp;nbsp;@name&lt;br /&gt;declare&amp;nbsp;@seat&amp;nbsp;int&lt;br /&gt;set&amp;nbsp;@seat&amp;nbsp;=&amp;nbsp;stuseat&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;where&amp;nbsp;stuname&amp;nbsp;=&amp;nbsp;@name&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;where&amp;nbsp;(stuseat&amp;nbsp;=&amp;nbsp;@seat+1)&amp;nbsp;or&amp;nbsp;(stuseat&amp;nbsp;=&amp;nbsp;@seat-1)&lt;br /&gt;go&lt;/p&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1714376.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714376.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/04/17/1714375.html</id><title type="text">高级查询</title><summary type="text">&amp;gt;[1]简单子查询用T-SQL语句实现declare@ageintset@age=stuagefromstumarkswherestuname='李文才'select*fromstumarkswherestuage&amp;gt;@agegoselectstunamefromstuinfoinnerjoinstumarksonstuinfo.stuno=stumarks.stunowherewrit...</summary><published>2010-04-17T11:45:00Z</published><updated>2010-04-17T11:45:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714375.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714375.html"/><content type="html">&amp;nbsp;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[1]简单子查询&lt;/p&gt;&#xD;
&lt;p&gt;用T-SQL语句实现&lt;br /&gt;declare&amp;nbsp;@age&amp;nbsp;int&lt;br /&gt;set&amp;nbsp;@age&amp;nbsp;=&amp;nbsp;stuage&amp;nbsp;from&amp;nbsp;stumarks&amp;nbsp;where&amp;nbsp;stuname&amp;nbsp;=&amp;nbsp;'李文才'&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&amp;nbsp;where&amp;nbsp;stuage&amp;gt;@age&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;stuname&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;inner&amp;nbsp;join&amp;nbsp;stumarks&amp;nbsp;&lt;br /&gt;on&amp;nbsp;stuinfo.stuno&amp;nbsp;=&amp;nbsp;stumarks.stuno&amp;nbsp;&lt;br /&gt;where&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;60&lt;/p&gt;&#xD;
&lt;p&gt;用子查询语句实现&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&lt;br /&gt;where&amp;nbsp;stuage&amp;nbsp;&amp;gt;&amp;nbsp;(select&amp;nbsp;stuage&amp;nbsp;from&amp;nbsp;stumarks&amp;nbsp;where&amp;nbsp;stuname&amp;nbsp;=&amp;nbsp;'李文才')-----子查询的返回值不能多余一个&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;stuname&amp;nbsp;from&amp;nbsp;stuinfo&lt;br /&gt;where&amp;nbsp;stuno&amp;nbsp;=&amp;nbsp;(select&amp;nbsp;stuno&amp;nbsp;from&amp;nbsp;stumarks&amp;nbsp;where&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;60)&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[2]&amp;nbsp;in&amp;nbsp;和&amp;nbsp;not&amp;nbsp;in&amp;nbsp;子查询&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;stuname&amp;nbsp;from&amp;nbsp;stuinfo&lt;br /&gt;where&amp;nbsp;stuno&amp;nbsp;in&amp;nbsp;(select&amp;nbsp;stuno&amp;nbsp;from&amp;nbsp;stumarks&amp;nbsp;where&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;60)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;stuname&amp;nbsp;from&amp;nbsp;stuinfo&lt;br /&gt;where&amp;nbsp;stuno&amp;nbsp;in&amp;nbsp;(select&amp;nbsp;stuno&amp;nbsp;from&amp;nbsp;stumarks)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;stuname&amp;nbsp;from&amp;nbsp;stuinfo&lt;br /&gt;where&amp;nbsp;stuno&amp;nbsp;not&amp;nbsp;in&amp;nbsp;(select&amp;nbsp;stuno&amp;nbsp;from&amp;nbsp;stumarks)&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[3]exists&amp;nbsp;和&amp;nbsp;not&amp;nbsp;exists&lt;/p&gt;&#xD;
&lt;p&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;sysdatabases&amp;nbsp;where&amp;nbsp;name&amp;nbsp;=&amp;nbsp;'studb')&lt;br /&gt;drop&amp;nbsp;database&amp;nbsp;studb&lt;br /&gt;create&amp;nbsp;database&amp;nbsp;studb&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;#8230;&amp;#8230;&amp;#8230;略&amp;#8230;&amp;#8230;&amp;#8230;&lt;br /&gt;)&lt;/p&gt;&#xD;
&lt;p&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&amp;nbsp;where&amp;nbsp;writtenexam&amp;gt;80)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;'本班有人笔试成绩超过80分，每人只加2分，加分后的成绩为：'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;updata&amp;nbsp;stumarks&amp;nbsp;set&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;writtenexam&amp;nbsp;+&amp;nbsp;2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;'本班无人笔试成绩超过80分，每人加5分，加分后的成绩为：'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;updata&amp;nbsp;stumarks&amp;nbsp;set&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;writtenexam&amp;nbsp;+&amp;nbsp;5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;if&amp;nbsp;not&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&amp;nbsp;where&amp;nbsp;writtenexam&amp;gt;60&amp;nbsp;and&amp;nbsp;labexam&amp;gt;60)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;'本班无人通过考试，试题偏难，每人加3分，加分后的成绩为：'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;updata&amp;nbsp;stumarks&amp;nbsp;set&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;writtenexam&amp;nbsp;+&amp;nbsp;3,labexam&amp;nbsp;=&amp;nbsp;labexam&amp;nbsp;+&amp;nbsp;3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;'本班考试成绩一般，每人只加1分，加分后的成绩为：'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;updata&amp;nbsp;stumarks&amp;nbsp;set&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;writtenexam&amp;nbsp;+&amp;nbsp;1,labexam&amp;nbsp;=&amp;nbsp;labexam&amp;nbsp;+&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[4]T-SQL&amp;nbsp;语句的综合应用&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stuinfo&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks&lt;br /&gt;select&amp;nbsp;应到人数&amp;nbsp;=&amp;nbsp;(select&amp;nbsp;count(*)&amp;nbsp;from&amp;nbsp;stuinfo),&lt;br /&gt;实到人数&amp;nbsp;=&amp;nbsp;(select&amp;nbsp;count(*)&amp;nbsp;from&amp;nbsp;stumarks),&lt;br /&gt;缺考人数&amp;nbsp;=&amp;nbsp;((select&amp;nbsp;count(*)&amp;nbsp;from&amp;nbsp;stuinfo)&amp;nbsp;-&amp;nbsp;(select&amp;nbsp;count(*)&amp;nbsp;from&amp;nbsp;stumarks))&lt;br /&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;sysobjects&amp;nbsp;where&amp;nbsp;name&amp;nbsp;=&amp;nbsp;'newtable')&lt;br /&gt;drop&amp;nbsp;table&amp;nbsp;newtable&lt;br /&gt;select&amp;nbsp;stuname,stuno,writtenexam,labexam,&lt;br /&gt;ispass&amp;nbsp;=&amp;nbsp;case&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when&amp;nbsp;writtenexam&amp;gt;60&amp;nbsp;and&amp;nbsp;labexam&amp;gt;60&amp;nbsp;then&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;into&amp;nbsp;newtable&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;left&amp;nbsp;join&amp;nbsp;stumarks&lt;br /&gt;on&amp;nbsp;stuinfo.stuno&amp;nbsp;=&amp;nbsp;stumarks.stuno&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;newtable&lt;br /&gt;declare&amp;nbsp;@avgwritten&amp;nbsp;numeric(4,1),@avglab&amp;nbsp;numeric(4,1)&lt;br /&gt;select&amp;nbsp;@avgwritten&amp;nbsp;=&amp;nbsp;avg(writtenexam)&amp;nbsp;from&amp;nbsp;newtable&amp;nbsp;where&amp;nbsp;writtenexam&amp;nbsp;is&amp;nbsp;not&amp;nbsp;null&lt;br /&gt;select&amp;nbsp;@avglab&amp;nbsp;=&amp;nbsp;avg(labexam)&amp;nbsp;from&amp;nbsp;newtable&amp;nbsp;where&amp;nbsp;labexam&amp;nbsp;is&amp;nbsp;not&amp;nbsp;null&lt;br /&gt;if&amp;nbsp;@avgwritten&amp;lt;@avglab&lt;br /&gt;while(1=1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;update&amp;nbsp;newtable&amp;nbsp;set&amp;nbsp;writtenexam&amp;nbsp;=&amp;nbsp;writtenexam&amp;nbsp;+&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(select&amp;nbsp;max(writtenexam)&amp;nbsp;from&amp;nbsp;newtable)&amp;gt;=97&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break&lt;br /&gt;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;else&lt;br /&gt;while(1=1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;update&amp;nbsp;newtable&amp;nbsp;set&amp;nbsp;labexam&amp;nbsp;=&amp;nbsp;labexam&amp;nbsp;+&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(select&amp;nbsp;max(labexam)&amp;nbsp;from&amp;nbsp;newtable)&amp;gt;=97&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break&lt;br /&gt;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;update&amp;nbsp;newtable&amp;nbsp;set&amp;nbsp;ispass&amp;nbsp;=&amp;nbsp;case&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when&amp;nbsp;writtenexam&amp;gt;60&amp;nbsp;and&amp;nbsp;labexam&amp;gt;60&amp;nbsp;then&amp;nbsp;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;newtable&lt;br /&gt;select&amp;nbsp;姓名&amp;nbsp;=&amp;nbsp;stuname,学号&amp;nbsp;=&amp;nbsp;stuno,笔试成绩&amp;nbsp;=&amp;nbsp;case&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when&amp;nbsp;writtenexam&amp;nbsp;is&amp;nbsp;null&amp;nbsp;then&amp;nbsp;'缺考'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;convert(varchar(5),writtenexam)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;，机试成绩&amp;nbsp;=&amp;nbsp;case&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when&amp;nbsp;labexam&amp;nbsp;is&amp;nbsp;null&amp;nbsp;then&amp;nbsp;'缺考'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;convert(varchar(5),labexam)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;,是否通过&amp;nbsp;=&amp;nbsp;case&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;when&amp;nbsp;ispass&amp;nbsp;=&amp;nbsp;1&amp;nbsp;then&amp;nbsp;'是'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;'否'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;from&amp;nbsp;newtable&lt;br /&gt;select&amp;nbsp;总人数&amp;nbsp;=&amp;nbsp;count(*),通过人数&amp;nbsp;=&amp;nbsp;sum(ispass)&lt;br /&gt;通过率&amp;nbsp;=&amp;nbsp;(convert(varchar(5),avg(ispass*100))&amp;nbsp;+&amp;nbsp;'%')&amp;nbsp;from&amp;nbsp;newtable&lt;/p&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1714375.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714375.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/tygwy/archive/2010/04/17/1714373.html</id><title type="text">事务，索引和视图</title><summary type="text">&amp;gt;[1]事务usestudbgoifexists(select*fromsysobjectswherename='bank')droptablebankgocreatetablebank(customernamechar(10),currentmoneymoney)goaltertablebankaddconstraintck_currentmoneycheck(currentmoney&amp;g...</summary><published>2010-04-17T11:44:00Z</published><updated>2010-04-17T11:44:00Z</updated><author><name>记住昨天，迎接明天</name><uri>http://www.cnblogs.com/tygwy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714373.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714373.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[1]事务&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;sysobjects&amp;nbsp;where&amp;nbsp;name&amp;nbsp;=&amp;nbsp;'bank')&lt;br /&gt;drop&amp;nbsp;table&amp;nbsp;bank&lt;br /&gt;go&lt;br /&gt;create&amp;nbsp;table&amp;nbsp;bank&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;customername&amp;nbsp;&amp;nbsp;char(10),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentmoney&amp;nbsp;&amp;nbsp;money&lt;br /&gt;)&lt;br /&gt;go&lt;br /&gt;alter&amp;nbsp;table&amp;nbsp;bank&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;add&amp;nbsp;constraint&amp;nbsp;ck_currentmoney&amp;nbsp;check&amp;nbsp;(currentmoney&amp;gt;=1)&lt;br /&gt;go&lt;br /&gt;insert&amp;nbsp;into&amp;nbsp;bank&amp;nbsp;(customername,currentmoney)&amp;nbsp;values&amp;nbsp;('张三'，1000)&lt;br /&gt;insert&amp;nbsp;into&amp;nbsp;bank&amp;nbsp;(customername,currentmoney)&amp;nbsp;values&amp;nbsp;('李四'，1)&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;bank&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;事务的属性&lt;br /&gt;1.&amp;nbsp;原子性&lt;br /&gt;2.&amp;nbsp;一致性&lt;br /&gt;3.&amp;nbsp;隔离性&lt;br /&gt;4.&amp;nbsp;持久性&lt;/p&gt;&#xD;
&lt;p&gt;开始事务：begin&amp;nbsp;transaction&lt;br /&gt;提交事务：commit&amp;nbsp;transaction&lt;br /&gt;回滚事务：rollback&amp;nbsp;transaction&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;update&amp;nbsp;bank&amp;nbsp;set&amp;nbsp;currentmoney&amp;nbsp;=&amp;nbsp;currentmoney&amp;nbsp;-&amp;nbsp;1000&amp;nbsp;where&amp;nbsp;customername&amp;nbsp;=&amp;nbsp;'李四'&lt;br /&gt;set&amp;nbsp;nocount&amp;nbsp;on&amp;nbsp;&amp;nbsp;-----不显示受影响的行数信息&lt;br /&gt;print&amp;nbsp;'查看转帐事务前的余额'&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;bank&lt;br /&gt;go&lt;br /&gt;begin&amp;nbsp;transaction&lt;br /&gt;declare&amp;nbsp;@errorsum&amp;nbsp;int&lt;br /&gt;set&amp;nbsp;@errorsum&amp;nbsp;=&amp;nbsp;0&lt;br /&gt;update&amp;nbsp;bank&amp;nbsp;set&amp;nbsp;currentmoney&amp;nbsp;=&amp;nbsp;currentmoney&amp;nbsp;-&amp;nbsp;1000&lt;br /&gt;where&amp;nbsp;customername&amp;nbsp;=&amp;nbsp;'张三'&lt;br /&gt;set&amp;nbsp;@errorsum&amp;nbsp;=&amp;nbsp;@errorsum&amp;nbsp;+&amp;nbsp;@@error&amp;nbsp;&amp;nbsp;-----累计是否有错误&lt;br /&gt;update&amp;nbsp;bank&amp;nbsp;set&amp;nbsp;currentmoney&amp;nbsp;=&amp;nbsp;currentmoney&amp;nbsp;+&amp;nbsp;1000&lt;br /&gt;set&amp;nbsp;@errorsum&amp;nbsp;=&amp;nbsp;@errorsum&amp;nbsp;+&amp;nbsp;@@error&lt;br /&gt;print&amp;nbsp;'查看转帐事务过程中的余额'&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;bank&lt;br /&gt;if&amp;nbsp;@errorsum&amp;lt;&amp;gt;0&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;'交易失败，回滚事务'&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rollback&amp;nbsp;transaction&lt;br /&gt;&amp;nbsp;&amp;nbsp;end&amp;nbsp;&lt;br /&gt;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print&amp;nbsp;'交易成功，提交事务，写入硬盘，永久的保存'&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commit&amp;nbsp;transaction&lt;br /&gt;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;go&lt;br /&gt;print&amp;nbsp;'查看转帐事务后的余额'&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;bank&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[2]索引&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;name&amp;nbsp;from&amp;nbsp;sysindexes&amp;nbsp;where&amp;nbsp;name&amp;nbsp;=&amp;nbsp;'ix_stumarks_writtenexam')&lt;br /&gt;drop&amp;nbsp;index&amp;nbsp;stumarks.ix_stumarks_writtenexam&lt;br /&gt;create&lt;br /&gt;&amp;nbsp;nonclustered&amp;nbsp;index&amp;nbsp;ix_stumarks_writtenexam&lt;br /&gt;on&amp;nbsp;stumarks(writtenexam)&lt;br /&gt;with&amp;nbsp;fillfactor&amp;nbsp;=&amp;nbsp;30&lt;br /&gt;go&lt;/p&gt;&#xD;
&lt;p&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;stumarks(index&amp;nbsp;=&amp;nbsp;ix_stumarks_writtenexam)&lt;br /&gt;where&amp;nbsp;writtenexam&amp;nbsp;between&amp;nbsp;60&amp;nbsp;and&amp;nbsp;90&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;gt;[3]视图&lt;/p&gt;&#xD;
&lt;p&gt;use&amp;nbsp;studb&lt;br /&gt;go&lt;br /&gt;if&amp;nbsp;exists&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;sysobjects&amp;nbsp;where&amp;nbsp;name&amp;nbsp;=&amp;nbsp;'view_stuinfo_stumarks')&lt;br /&gt;drop&amp;nbsp;view&amp;nbsp;view_stuinfo_stumarks&lt;br /&gt;go&lt;br /&gt;create&amp;nbsp;view&amp;nbsp;view_stuinfo_stumarks&lt;br /&gt;as&lt;br /&gt;&amp;nbsp;&amp;nbsp;select&amp;nbsp;姓名&amp;nbsp;=&amp;nbsp;stuname,学号&amp;nbsp;=&amp;nbsp;stuinfo.stuno,笔试成绩&amp;nbsp;=&amp;nbsp;writtenexam,机试成绩&amp;nbsp;=&amp;nbsp;labexam,平均&lt;/p&gt;&#xD;
&lt;p&gt;分&amp;nbsp;=&amp;nbsp;(writtenexam+labexam)/2&lt;br /&gt;&amp;nbsp;&amp;nbsp;from&amp;nbsp;stuinfo&amp;nbsp;left&amp;nbsp;join&amp;nbsp;stumarks&amp;nbsp;on&amp;nbsp;stuinfo.stuno&amp;nbsp;=&amp;nbsp;stumarks.stuno&lt;br /&gt;go&lt;br /&gt;select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;view_stuinfo_stumarks&lt;/p&gt;&lt;img src="http://www.cnblogs.com/tygwy/aggbug/1714373.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/tygwy/archive/2010/04/17/1714373.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
