Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 Index Question

Author  Topic 

apantig
Posting Yak Master

104 Posts

Posted - 2005-12-06 : 20:24:17
Hi guys,

Thanks for the recent help and advice.

How to create a temporary table in stored procedure with 2 index?


SampleIndex Table

Columns Type Size
BuyerCode 8 Char
DueDate 8 DateTime


I need to index these 2 columns.


Thank you

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2005-12-06 : 20:54:26
Use a CREATE TABLE statement, followed by CREATE INDEX statements.

You can see the statement formats in SQL Server Books Online.


CODO ERGO SUM
Go to Top of Page

apantig
Posting Yak Master

104 Posts

Posted - 2005-12-07 : 21:11:18
I followed the sample in SQL Server Books Online but it does'nt give me the correct simple sorting of DueDates. Here is my code:


CREATE TABLE #Step
(
[BuyerCode] [char] (10) NOT NULL ,
[PartCode] [char] (3) NULL ,
[DueDate] [datetime] NOT NULL
)


Insert Into #Step
values
(
'P02-5022',
'MA',
'01/10/2001 00:00:00.000'
)


Insert Into #Step
values
(
'P02-5022',
'BTO',
'12/16/2015 00:00:00.000'
)


Insert Into #Step
values
(
'P02-5022',
'MA',
'03/17/2005 00:00:00.000'
)


Insert Into #Step
values
(
'P02-5022',
'MA',
'12/23/2003 00:00:00.000'
)



Insert Into #Step
values
(
'P02-5022',
'RES',
'02/14/1999 00:00:00.000'
)



IF EXISTS (SELECT name FROM sysindexes WHERE name = 'Order_BuyerCodeDueDate')
DROP INDEX #Step.Order_BuyerCodeDueDate

CREATE INDEX Order_BuyerCodeDueDate
ON #Step (BuyerCode,DueDate)


SELECT * FRom #Step

Drop Table #Step



Returned Result:




BuyerCode PartCode DueDate
---------- -------- ---------------------------
P02-5022 MA 2001-01-10 00:00:00.000
P02-5022 BTO 2015-12-16 00:00:00.000
P02-5022 MA 2005-03-17 00:00:00.000
P02-5022 MA 2003-12-23 00:00:00.000
P02-5022 RES 1999-02-14 00:00:00.000

(5 row(s) affected)



The result should be sorted by DueDates.

What will I do?

Thank you.
Go to Top of Page

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2005-12-07 : 21:24:54
You don't need an index. Just use an ORDER BY clause on your SELECT statement.


CODO ERGO SUM
Go to Top of Page

apantig
Posting Yak Master

104 Posts

Posted - 2005-12-07 : 22:09:04
I need this index becuase I will update the table later.
Go to Top of Page

robvolk
Most Valuable Yak

15732 Posts

Posted - 2005-12-07 : 23:00:05
No, you don't NEED an index to update a table. Nor do you NEED an index to ORDER BY (although it would make the ordering operation faster)
Go to Top of Page

apantig
Posting Yak Master

104 Posts

Posted - 2005-12-07 : 23:15:59
No, I need to index the temporary table. The actual table here consists of many buyer codes and duedate and the temporary table has a column, "ItemCount" which is incremented by 1 for each buyercode. ItemCount colum is reset when BuyerCode is unequal to the next BuyerCode.

See the actual temporary table: (before the update of ITEMCount, there must be an index/sorting for the DueDate.


BuyerCode PartCode DueDate ItemCount Amount PVFactor NPV Interest PrinpalPmt PAS Balance Increment IsRead
---------- -------- --------------------------- ------------ -------------------- ----------------------------------------------------- ------------------------- ------------------------- ------------------------- ------------------------- ------------------------- ----------------------------------------------------- ------
P02-5015 CP 1800-01-01 00:00:00.000 0 .00 1.0 .00 .00 .00 2977196.00 NULL 0.0 N
P02-5015 DP 1999-07-19 00:00:00.000 1 2481135.23 1.0 2481135.23 .00 2481135.23 .00 .00 0.0 N
P02-5015 MA 2003-10-05 00:00:00.000 2 5600.49 1.0 5600.49 .00 5600.49 .00 .00 0.0 N
P02-5015 MA 2003-11-05 00:00:00.000 3 5670.50 1.0 5670.50 .00 5670.50 .00 .00 0.0 N
P02-5015 MA 2003-12-05 00:00:00.000 4 5741.38 1.0 5741.38 .00 5741.38 .00 .00 0.0 N
P02-5015 MA 2004-01-05 00:00:00.000 5 5813.15 1.0 5813.15 .00 5813.15 .00 .00 0.0 N
P02-5015 MA 2004-02-05 00:00:00.000 6 5885.81 1.0 5885.81 .00 5885.81 .00 .00 0.0 N
P02-5015 MA 2004-03-05 00:00:00.000 7 5959.38 1.0 5959.38 .00 5959.38 .00 .00 0.0 N
P02-5015 MA 2004-04-05 00:00:00.000 8 6033.88 1.0 6033.88 .00 6033.88 .00 .00 0.0 N
P02-5015 MA 2004-05-05 00:00:00.000 9 6109.30 1.0 6109.30 .00 6109.30 .00 .00 0.0 N
P02-5015 MA 2004-06-05 00:00:00.000 10 6185.66 1.0 6185.66 .00 6185.66 .00 .00 0.0 N
P02-5015 MA 2004-07-05 00:00:00.000 11 6262.99 1.0 6262.99 .00 6262.99 .00 .00 0.0 N
P02-5015 MA 2004-08-05 00:00:00.000 12 6341.27 1.0 6341.27 .00 6341.27 .00 .00 0.0 N
P02-5015 MA 2004-09-05 00:00:00.000 13 6420.54 1.0 6420.54 .00 6420.54 .00 .00 0.0 N
P02-5015 MA 2004-10-05 00:00:00.000 14 6500.80 1.0 6500.80 .00 6500.80 .00 .00 0.0 N
P02-5015 MA 2004-11-05 00:00:00.000 15 6582.06 1.0 6582.06 .00 6582.06 .00 .00 0.0 N
P02-5015 MA 2004-12-05 00:00:00.000 16 6664.33 1.0 6664.33 .00 6664.33 .00 .00 0.0 N
P02-5015 MA 2005-01-05 00:00:00.000 17 6747.64 1.0 6747.64 .00 6747.64 .00 .00 0.0 N
P02-5015 MA 2005-02-05 00:00:00.000 18 6831.98 1.0 6831.98 .00 6831.98 .00 .00 0.0 N
P02-5015 MA 2005-03-05 00:00:00.000 19 6917.38 1.0 6917.38 .00 6917.38 .00 .00 0.0 N
P02-5015 MA 2005-04-05 00:00:00.000 20 7003.85 1.0 7003.85 .00 7003.85 .00 .00 0.0 N
P02-5015 MA 2005-05-05 00:00:00.000 21 7091.40 1.0 7091.40 .00 7091.40 .00 .00 0.0 N
P02-5015 MA 2005-06-05 00:00:00.000 22 7180.04 1.0 7180.04 .00 7180.04 .00 .00 0.0 N
P02-5015 MA 2005-07-05 00:00:00.000 23 7269.79 1.0 7269.79 .00 7269.79 .00 .00 0.0 N
P02-5015 MA 2005-08-05 00:00:00.000 24 7360.66 1.0 7360.66 .00 7360.66 .00 .00 0.0 N
P02-5015 MA 2005-09-05 00:00:00.000 25 7452.67 1.0 7452.67 .00 7452.67 .00 .00 0.0 N
P02-5015 MA 2005-10-05 00:00:00.000 26 7545.83 1.0 7545.83 .00 7545.83 .00 .00 0.0 N
P02-5015 MA 2005-11-05 00:00:00.000 27 7640.15 1.0 7640.15 .00 7640.15 .00 .00 0.0 N
P02-5015 MA 2005-12-05 00:00:00.000 28 7735.65 1.0 7735.65 .00 7735.65 .00 .00 0.0 N
P02-5015 MA 2006-01-05 00:00:00.000 29 7832.35 1.0 7832.35 .00 7832.35 .00 .00 0.0 N
P02-5015 MA 2006-02-05 00:00:00.000 30 7930.25 1.0 7930.25 .00 7930.25 .00 .00 0.0 N
P02-5015 MA 2006-03-05 00:00:00.000 31 8029.38 1.0 8029.38 .00 8029.38 .00 .00 0.0 N
P02-5015 MA 2006-04-05 00:00:00.000 32 8129.75 1.0 8129.75 .00 8129.75 .00 .00 0.0 N
P02-5015 MA 2006-05-05 00:00:00.000 33 8231.37 1.0 8231.37 .00 8231.37 .00 .00 0.0 N
P02-5015 MA 2006-06-05 00:00:00.000 34 8334.26 1.0 8334.26 .00 8334.26 .00 .00 0.0 N
P02-5015 MA 2006-07-05 00:00:00.000 35 8438.44 1.0 8438.44 .00 8438.44 .00 .00 0.0 N
P02-5015 MA 2006-08-05 00:00:00.000 36 8543.92 1.0 8543.92 .00 8543.92 .00 .00 0.0 N
P02-5015 MA 2006-09-05 00:00:00.000 37 8650.72 1.0 8650.72 .00 8650.72 .00 .00 0.0 N
P02-5015 MA 2006-10-05 00:00:00.000 38 8758.85 1.0 8758.85 .00 8758.85 .00 .00 0.0 N
P02-5015 MA 2006-11-05 00:00:00.000 39 8868.34 1.0 8868.34 .00 8868.34 .00 .00 0.0 N
P02-5015 MA 2006-12-05 00:00:00.000 40 8979.19 1.0 8979.19 .00 8979.19 .00 .00 0.0 N
P02-5015 MA 2007-01-05 00:00:00.000 41 9091.43 1.0 9091.43 .00 9091.43 .00 .00 0.0 N
P02-5015 MA 2007-02-05 00:00:00.000 42 9205.08 1.0 9205.08 .00 9205.08 .00 .00 0.0 N
P02-5015 MA 2007-03-05 00:00:00.000 43 9320.14 1.0 9320.14 .00 9320.14 .00 .00 0.0 N
P02-5015 MA 2007-04-05 00:00:00.000 44 9436.64 1.0 9436.64 .00 9436.64 .00 .00 0.0 N
P02-5015 MA 2007-05-05 00:00:00.000 45 9554.60 1.0 9554.60 .00 9554.60 .00 .00 0.0 N
P02-5015 MA 2007-06-05 00:00:00.000 46 9674.03 1.0 9674.03 .00 9674.03 .00 .00 0.0 N
P02-5015 MA 2007-07-05 00:00:00.000 47 9794.96 1.0 9794.96 .00 9794.96 .00 .00 0.0 N
P02-5015 MA 2007-08-05 00:00:00.000 48 9917.39 1.0 9917.39 .00 9917.39 .00 .00 0.0 N
P02-5015 MA 2007-09-05 00:00:00.000 49 10041.36 1.0 10041.36 .00 10041.36 .00 .00 0.0 N
P02-5015 MA 2007-10-05 00:00:00.000 50 10166.88 1.0 10166.88 .00 10166.88 .00 .00 0.0 N
P02-5015 MA 2007-11-05 00:00:00.000 51 10293.97 1.0 10293.97 .00 10293.97 .00 .00 0.0 N
P02-5015 MA 2007-12-05 00:00:00.000 52 10422.64 1.0 10422.64 .00 10422.64 .00 .00 0.0 N
P02-5015 MA 2008-01-05 00:00:00.000 53 10552.92 1.0 10552.92 .00 10552.92 .00 .00 0.0 N
P02-5015 MA 2008-02-05 00:00:00.000 54 10684.83 1.0 10684.83 .00 10684.83 .00 .00 0.0 N
P02-5015 MA 2008-03-05 00:00:00.000 55 10818.39 1.0 10818.39 .00 10818.39 .00 .00 0.0 N
P02-5015 MA 2008-04-05 00:00:00.000 56 10953.62 1.0 10953.62 .00 10953.62 .00 .00 0.0 N
P02-5015 MA 2008-05-05 00:00:00.000 57 11090.55 1.0 11090.55 .00 11090.55 .00 .00 0.0 N
P02-5015 MA 2008-06-05 00:00:00.000 58 11229.18 1.0 11229.18 .00 11229.18 .00 .00 0.0 N
P02-5015 MA 2008-07-05 00:00:00.000 59 11369.54 1.0 11369.54 .00 11369.54 .00 .00 0.0 N
P02-5015 MA 2008-08-05 00:00:00.000 60 11511.66 1.0 11511.66 .00 11511.66 .00 .00 0.0 N
P02-5015 MA 2008-09-05 00:00:00.000 61 11655.56 1.0 11655.56 .00 11655.56 .00 .00 0.0 N
P02-5021 CP 1800-01-01 00:00:00.000 0 .00 1.0 .00 .00 .00 4801619.53 NULL 0.0 N
P02-5021 RES 1999-05-14 00:00:00.000 1 4216619.53 1.0 4216619.53 .00 4216619.53 .00 .00 0.0 N
P02-5021 BTO 2004-10-27 00:00:00.000 2 585000.00 1.0 585000.00 .00 585000.00 .00 .00 0.0 N
P02-5022 CP 1800-01-01 00:00:00.000 0 .00 1.0 .00 .00 .00 4902066.83 5330000.00 0.0 Y
P02-5022 RES 2000-03-03 00:00:00.000 1 100000.00 1.0 100000.00 .00 100000.00 4802066.83 5230000.00 0.0 Y
P02-5022 DP 2000-09-30 00:00:00.000 2 125000.00 1.0 125000.00 .00 125000.00 4677066.83 5105000.00 0.0 Y
P02-5022 DP 2000-10-30 00:00:00.000 3 125000.00 1.0 125000.00 .00 125000.00 4552066.83 4980000.00 0.0 Y
P02-5022 MA 2000-11-30 00:00:00.000 4 27500.00 1.0 27500.00 .00 27500.00 4524566.83 4952500.00 0.0 Y
P02-5022 MA 2000-12-30 00:00:00.000 5 27500.00 1.0 27500.00 .00 27500.00 4497066.83 4925000.00 0.0 Y
P02-5022 MA 2001-01-30 00:00:00.000 6 27500.00 1.0 27500.00 .00 27500.00 4469566.83 4897500.00 0.0 Y
P02-5022 MA 2001-02-28 00:00:00.000 7 27500.00 1.0 27500.00 .00 27500.00 4442066.83 4870000.00 0.0 Y
P02-5022 MA 2001-03-30 00:00:00.000 8 27500.00 1.0 27500.00 .00 27500.00 4414566.83 4842500.00 0.0 Y
P02-5022 MA 2001-04-30 00:00:00.000 9 38583.33 1.0 38583.33 .00 38583.33 4375983.50 4803916.67 0.0 Y
P02-5022 MA 2001-05-30 00:00:00.000 10 38583.33 1.0 38583.33 .00 38583.33 4337400.17 4765333.34 0.0 Y
P02-5022 MA 2001-06-30 00:00:00.000 11 38583.33 1.0 38583.33 .00 38583.33 4298816.84 4726750.01 0.0 Y
P02-5022 MA 2001-07-30 00:00:00.000 12 38583.33 1.0 38583.33 .00 38583.33 4260233.51 4688166.68 0.0 Y
P02-5022 MA 2001-08-30 00:00:00.000 13 38583.33 1.0 38583.33 .00 38583.33 4221650.18 4649583.35 0.0 Y
P02-5022 MA 2001-09-30 00:00:00.000 14 38583.33 1.0 38583.33 .00 38583.33 4183066.85 4611000.02 0.0 Y
P02-5022 MA 2001-10-30 00:00:00.000 15 38583.33 1.0 38583.33 .00 38583.33 4144483.52 4572416.69 0.0 Y
P02-5022 MA 2001-11-30 00:00:00.000 16 38583.33 1.0 38583.33 .00 38583.33 4105900.19 4533833.36 0.0 Y
P02-5022 MA 2001-12-30 00:00:00.000 17 38583.33 1.0 38583.33 .00 38583.33 4067316.86 4495250.03 0.0 Y
P02-5022 MA 2002-01-30 00:00:00.000 18 38583.33 1.0 38583.33 .00 38583.33 4028733.53 4456666.70 0.0 Y
P02-5022 MA 2002-02-28 00:00:00.000 19 38583.33 1.0 38583.33 .00 38583.33 3990150.20 4418083.37 0.0 Y
P02-5022 MA 2002-03-30 00:00:00.000 20 38583.33 1.0 38583.33 .00 38583.33 3951566.87 4379500.04 0.0 Y
P02-5022 MA 2002-04-30 00:00:00.000 21 38583.33 1.0 38583.33 .00 38583.33 3912983.54 4340916.71 0.0 Y
P02-5022 MA 2002-05-30 00:00:00.000 22 38583.33 1.0 38583.33 .00 38583.33 3874400.21 4302333.38 0.0 Y
P02-5022 MA 2002-06-30 00:00:00.000 23 38583.33 1.0 38583.33 .00 38583.33 3835816.88 4263750.05 0.0 Y
P02-5022 MA 2002-07-30 00:00:00.000 24 38583.33 1.0 38583.33 .00 38583.33 3797233.55 4225166.72 0.0 Y
P02-5022 MA 2002-08-30 00:00:00.000 25 38583.33 1.0 38583.33 .00 38583.33 3758650.22 4186583.39 0.0 Y
P02-5022 MA 2002-09-30 00:00:00.000 26 38583.33 1.0 38583.33 .00 38583.33 3720066.89 4148000.06 0.0 Y
P02-5022 MA 2002-10-30 00:00:00.000 27 38583.33 1.0 38583.33 .00 38583.33 3681483.56 4109416.73 0.0 Y
P02-5022 MA 2002-11-30 00:00:00.000 28 38583.33 1.0 38583.33 .00 38583.33 3642900.23 4070833.40 0.0 Y
P02-5022 MA 2002-12-30 00:00:00.000 29 38583.33 1.0 38583.33 .00 38583.33 3604316.90 4032250.07 0.0 Y
P02-5022 MA 2003-01-30 00:00:00.000 30 38583.33 0.99173586499999999 38264.47 30035.97 8547.36 3595769.54 3993666.74 1.0 Y
P02-5022 MA 2003-02-28 00:00:00.000 31 38583.33 0.98354002600000001 37948.25 29964.75 8618.58 3587150.96 3955083.41 2.0 Y
P02-5022 MA 2003-03-30 00:00:00.000 32 38583.33 0.97541191800000004 37634.64 29892.92 8690.41 3578460.55 3916500.08 3.0 Y
P02-5022 MA 2003-04-30 00:00:00.000 33 38583.33 0.967350983 37323.62 29820.50 8762.83 3569697.72 3877916.75 4.0 Y
P02-5022 MA 2003-05-30 00:00:00.000 34 38583.33 0.959356663 37015.17 29747.48 8835.85 3560861.87 3839333.42 5.0 Y
P02-5022 MA 2003-06-30 00:00:00.000 35 38583.33 0.95142841099999997 36709.28 29673.85 8909.48 3551952.39 3800750.09 6.0 Y
P02-5022 MA 2003-07-30 00:00:00.000 36 38583.33 0.94356567800000002 36405.91 29599.60 8983.73 3542968.66 3762166.76 7.0 Y
P02-5022 MA 2003-08-30 00:00:00.000 37 38583.33 0.93576792399999997 36105.04 29524.74 9058.59 3533910.07 3723583.43 8.0 Y
P02-5022 BTO 2003-09-26 00:00:00.000 38 2472083.55 0.92803461099999995 2294179.10 29449.25 2442634.30 1091275.77 1251499.88 9.0 Y
P02-5022 MA 2003-09-30 00:00:00.000 39 38583.33 0.92036520799999999 35510.75 9093.96 29489.37 1061786.40 1212916.55 10.0 Y
P02-5022 MA 2003-10-30 00:00:00.000 40 38583.33 0.91275918499999997 35217.29 8848.22 29735.11 1032051.29 1174333.22 11.0 Y
P02-5022 MA 2003-11-30 00:00:00.000 41 38583.33 0.90521602000000001 34926.25 8600.43 29982.90 1002068.39 1135749.89 12.0 Y
P02-5022 MA 2003-12-30 00:00:00.000 42 38583.33 0.89773519300000004 34637.61 8350.57 30232.76 971835.63 1097166.56 13.0 Y
P02-5022 MA 2004-01-30 00:00:00.000 43 38583.33 0.89031618800000001 34351.36 8098.63 30484.70 941350.93 1058583.23 14.0 Y
P02-5022 MA 2004-02-29 00:00:00.000 44 38583.33 0.88295849500000001 34067.48 7844.59 30738.74 910612.19 1019999.90 15.0 Y
P02-5022 MA 2004-03-30 00:00:00.000 45 38583.33 0.87566160699999995 33785.94 7588.43 30994.90 879617.29 981416.57 16.0 Y
P02-5022 MA 2004-04-30 00:00:00.000 46 38583.33 0.86842502099999996 33506.73 7330.14 31253.19 848364.10 942833.24 17.0 Y
P02-5022 MA 2004-05-30 00:00:00.000 47 38583.33 0.86124823900000003 33229.83 7069.70 31513.63 816850.47 904249.91 18.0 Y
P02-5022 MA 2004-06-30 00:00:00.000 48 38583.33 0.85413076799999998 32955.21 6807.09 31776.24 785074.23 865666.58 19.0 Y
P02-5022 MA 2004-07-30 00:00:00.000 49 38583.33 0.84707211599999999 32682.86 6542.29 32041.04 753033.19 827083.25 20.0 Y
P02-5022 MA 2004-08-30 00:00:00.000 50 38583.33 0.84007179700000001 32412.77 6275.28 32308.05 720725.14 788499.92 21.0 Y
P02-5022 MA 2004-09-30 00:00:00.000 51 38583.33 0.83312933099999997 32144.90 6006.04 32577.29 688147.85 749916.59 22.0 Y
Go to Top of Page

khtan
In (Som, Ni, Yak)

17689 Posts

Posted - 2005-12-07 : 23:20:22
yes.As rob said, you only need ORDER BY to define the sequence
SELECT * FRom #Step ORDER BY DueDate

Or unless you want to use index to ensure uniqueness when insert / update records
CREATE UNIQUE INDEX

also see
[url]http://www.sqlteam.com/item.asp?ItemID=15442[/url]

-----------------
[KH]
Go to Top of Page
   

- Advertisement -