First the code, you can see the SQL statement to remove duplicate records, get duplicate records 
 
 
  
  Copy Code code as follows: 
 
 
  
 
  
  
ALTER procedure [dbo]. [Proc_itemmaster_getunique] @PAGEINDEX int, @uid int, @itemnumber varchar (50) 
  
As 
  
Begin Tran--Start a transaction 
  
drop table [Itemmaster]. [dbo]. [Testim]--delete table 
  
--Transfer the record to Testim 
  
SELECT * into [Itemmaster]. [dbo]. [Testim] from [Itemmaster]. [dbo]. [Dat_item_master] where Item_uid in (select min (item_uid) as Item_uid from [itemmaster].[ DBO]. [Dat_item_master] GROUP by Item_Number) and status=0 
  
Select Top * from [Itemmaster]. [dbo]. [Testim] where Item_uid not in (select Top (10* (@PAGEINDEX-1)) Item_uid from [itemmaster].[ DBO]. [Testim]) 
  
and owneruid= @uid and item_number like @itemnumber + '% ' 
  
 
  
--Determine if there is an error 
  
If @ @error <>0 
  
Begin 
  
Rollback TRAN--rollback if error 
  
End 
  
Else 
  
Begin--Otherwise advance transaction 
  
Commit Tran 
  
End 
  
 
 
 
  
My data is this: Because Item_uid is an identity column, Item_Number has duplicates, 
  
I want to filter it into this: 
  
Incidentally, some of the little problems that you encounter when you're programming. 
 
1. The program appears could not found stored procedure cannot find this stored procedure 
 
Because my program database has four, and the default connection is a, but actually to execute the stored procedure in B library, resulting in an error, 
 
Solution 1: You can build the same stored procedure in a 2: When the connection is performed, replace the database. 
 
2. asp.net/c# populates the dataset returned in the stored procedure to dataset/datatable 
 
 
 
 
  
  Copy Code code as follows: 
 
 
  
 
  
  
SqlConnection conn = new SqlConnection (configurationmanager.connectionstrings["Solutionsqlserver"). ToString ()); 
  
SqlCommand cmd = new SqlCommand ("Test", conn); 
  
Cmd.commandtype = CommandType.StoredProcedure; 
  
Cmd. Parameters.Add ("@MaxId", SqlDbType.Int). Value = 12000; 
  
 
  
SqlDataAdapter SDA = new SqlDataAdapter (cmd); 
  
DataTable dt = new DataTable (); 
  
Sda. Fill (DT); 
  
 
 
 
  
 
Thank http://www.cnblogs.com/liujuncm5/archive/2009/08/31/1557569.html in this 
 
3. In the stored procedure, write SQL statements can not dynamic without order by function 
 
Like what 
 
 
 
  
  Copy Code code as follows: 
 
 
  
 
  
  
--@new_orderby is an incoming parameter and cannot be written like this 
  
Select Top (10* (2-1)) Item_uid the From Testim order by @new_orderby 
  
 
  
 
  
--At the time of execution, SQL will appear the SELECT item identified by number 1 contains a variable as part 
  
Of the expression identifying a column position. Variables are only allowed when 
  
Ordering by a expression referencing a column name. 
  
 
 
 
  
 
But I found a solution, but it was a hassle.
 
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=9328 (second answer is connected with ' SQL ')
 
Http://databases.aspfaq.com/database/how-do-i-use-a-variable-in-an-order-by-clause.html (with case end also line)
 
4. Select INTO and insert into select two kinds of copy (thank http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html here)
 
1.INSERT into SELECT statement
 
Statement form:Insert into Table2 (field1,field2,...) Select Value1,value2,... from Table1
 
the target table Table2 must exist, and because the target table Table2 already exists, we can insert a constant in addition to the fields Table1 the source table. 
 
2.SELECT into from statement
 
Statement form:SELECT vale1, value2 into Table2 from Table1
 
The target table Table2 does not exist because the table Table2 is created automatically at insert time and the specified field data in Table1 is copied to Table2. 
 
5. Review the commonly used SQL method statements by the way
 
 
  
  Copy Code code as follows: 
 
 
  
 
  
  
DECLARE @name varchar (200)--Declaring variables 
  
Set @name = ' abcd;def '--assignment 
  
print ' EXEC len: ' +convert (varchar), Len (@name))--convert (type,value) conversion, Len (value) Get size 
  
print ' EXEC charindex: ' +convert (varchar), charindex (' e ', @name))--charindex (find,value) find location in value 
  
print ' not replace: ' + @name 
  
print ' EXEC replace: ' +replace (@name, '; ', ')--replace with replace 
  
print ' EXEC substring: ' +substring (@name, 0, 3)--intercept with substring 
  
Print @ @RowCount--Returns the number of rows affected by the previous line of code 
  
 
 
 
  
Author: Chenhuzi