标签: sql-server-2000

SQL Server索引没有帮助

我有一个表(SQL 2000),有超过10,000,000条记录.记录的增加速度约为每周80,000-100,000.每周一次,从数据中生成一些报告.报告通常运行起来相当慢,因为索引很少(可能是为了加速INSERT).一个新报告确实可以从特定"char(3)"列的附加索引中受益.

我使用企业管理器添加了索引(管理索引 - >新建 - >选择列,确定),甚至重建了表上的索引,但SELECT查询根本没有加速.有任何想法吗?

更新:

表定义:

ID, int, PK
Source, char(3)  <--- column I want indexed
...
About 20 different varchar fields
...
CreatedDate, datetime
Status, tinyint
ExternalID, uniqueidentifier
Run Code Online (Sandbox Code Playgroud)

我的测试查询只是:

select top 10000 [field list] where Source = 'abc'
Run Code Online (Sandbox Code Playgroud)

sql-server indexing sql-server-2000

0
推荐指数
1
解决办法
259
查看次数

SQL Server 2000 TSQL:存储的proc结果进入表

我想得到一个存储过程调用的输出并创建一个永久表,不指定列.因为存储的proc返回了很多列...

那么..我怎么能这样做?

SELECT * INTO MYTABLE FROM MYSTOREDPROC @PARAM1 = 1, @PARAM2 = 'HELLO'
Run Code Online (Sandbox Code Playgroud)

可能吗??

例子可以帮到我很多

t-sql sql-server-2000

0
推荐指数
1
解决办法
240
查看次数

在asp.net中使用sqlconnection的问题c#

我的代码:

String dbDate = DateTime.ParseExact(TextBox3.Text, "dd/mm/yyyy", null).ToString("yyyy-mm-dd");

SqlConnection MyConnection = new SqlConnection("Data Source=localhost;Initial Catalog=hcgoa;User Id=sa;Password=;");
MyConnection.Open();
String MyString = "select notice from notice_aspx where fil_no=? and orderdate=?";
SqlCommand MyCmd = new SqlCommand(MyString, MyConnection);
MyCmd.Parameters.AddWithValue("?", HiddenField4.Value);
MyCmd.Parameters.AddWithValue("?", dbDate);
using (SqlDataReader MyReader4 = MyCmd.ExecuteReader())
{
    //**
    if (MyReader4.Read())
    {

        String MyString1 = "UPDATE notice_aspx SET notice=? where fil_no=? AND orderdate=?";
        SqlCommand MyCmd1 = new SqlCommand(MyString1, MyConnection);
        MyCmd1.Parameters.AddWithValue("?", Editor1.Content.ToString());
        MyCmd1.Parameters.AddWithValue("?", HiddenField4.Value.ToString());
        MyCmd1.Parameters.AddWithValue("?", dbDate);
        MyCmd1.ExecuteNonQuery();
    }
    else
    {.........
Run Code Online (Sandbox Code Playgroud)

错误是

Exception Details: System.Data.SqlClient.SqlException: Line 1: …
Run Code Online (Sandbox Code Playgroud)

c# asp.net sql-server-2000

0
推荐指数
1
解决办法
393
查看次数

使用3个表的内部联接删除

我有三个表,其中一个存储用户基本信息,另一个是配置文件信息,最后一个是存储用户图片.

当我删除这些用户时,我需要删除这些表中的所有数据.所以我写了这样的查询.

DELETE Kullanicilar FROM Kullanicilar 
INNER JOIN ProfilBilgileri ON Kullanicilar.ID = ProfilBilgileri.UyeID 
INNER JOIN UyeResim ON Kullanicilar.ID = UyeResim.UyeID 
WHERE Kullanicilar.ID=@ID
Run Code Online (Sandbox Code Playgroud)

但它只是删除了"Kullanicilar"表中的数据.
有什么建议?

编辑:我正在使用MSSQL 2008但托管公司2000所以我需要兼容的代码.

sql t-sql sql-server sql-server-2000

0
推荐指数
1
解决办法
2789
查看次数

SQL Server 2000存储Proc爆炸没有明显的原因

如果它总是炸弹或一些错误 - 任何帮助将非常感激.

CREATE PROCEDURE sp_LetsWork
  (@MYID int,  @ThisDate Datetime)
AS
  SET NOCOUNT ON

  DECLARE @intErrorCode int,  
          @QStartDate datetime, 
          @QEndDate datetime 

  SELECT @intErrorCode = @@ERROR

  --DATEPART(mm, @ThisDate) BETWEEN  1 and 3 -- test both options
  BEGIN
    IF @ThisDate BETWEEN '01/01/' + CONVERT(VARCHAR(4), YEAR(@ThisDate)) 
                         AND '03/31/' + CONVERT(VARCHAR(4), YEAR(@ThisDate))  
    RunQuarter:
        SELECT * 
        FROM qryAR 
        WHERE CID = @MYID 
          AND (paiddate >= @QStartDate 
          AND paiddate <= @QEndDate)
        --ORDER BY paiddate ASC

        GO
        -- GOTO RunQuarter
  END
  GO

  SELECT @intErrorCode = @@ERROR

  IF …
Run Code Online (Sandbox Code Playgroud)

sql stored-procedures sql-server-2000

0
推荐指数
1
解决办法
79
查看次数

如何找到两个日期之间的所有周五和假日

桌子:

hDate      Holiday

17/12/2011 National Day
01/01/2012 New Year
....
Run Code Online (Sandbox Code Playgroud)

从表中,我想找到两个日期之间的假期总数:

像这样的查询:

select count(hdate)
from table1
where hdate between '" & start_date & "' and '" & end_date & "'
Run Code Online (Sandbox Code Playgroud)

用户输入:

start_date = '16/12/2011' 
end_date = '15/01/2012' 
Run Code Online (Sandbox Code Playgroud)

而且我想在2个日期之间找到星期五.

要查找星期五,如何创建查询?

预期产量:

Holiday Friday

2       5
Run Code Online (Sandbox Code Playgroud)

[2] - 从表1,[5] - 周五5天假期2天

这该怎么做?

sql t-sql sql-server sql-server-2000

0
推荐指数
1
解决办法
6264
查看次数

SQL Server 2000:使用另一个表中的值更新一个表

我有一个表单,显示系统列表及其当前状态.用户可以更改状态,并将状态更改的日期存储在历史记录表中.用户还可以在状态更改时更改服务器的名称(例如,如果由于租赁滚动而更换系统).

历史表存储详细信息,systemname如果系统名称在表单上发生更改,则还需要更新历史记录(以及所有历史更改).在表单上,​​有一个隐藏字段,originalsystemName因此我们知道systemname表单保存时是否匹配.

<input type='text' name='systemname'>
  <input type='text' name='originalSystemName'>
  <input type='text' name='status'><input type='submit' type='submit'>
Run Code Online (Sandbox Code Playgroud)

我想出了以下查询但是我收到了一个错误(请参阅下面的查询).

update SysHistory set  
SystemName = (
    select distinct t.systemname 
    from systemInfo_tmp t, SysHistory h 
    where t.systemname != t.originalSystemName
)    
where systemname in (
    select distinct t1.originalSystemName 
    from systemInfo_tmp t1, SysHistory h1 
    where t1.systemname != t1.originalSystemName
)
Run Code Online (Sandbox Code Playgroud)

我收到的错误:

子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

sql sql-server sql-server-2000

0
推荐指数
1
解决办法
3974
查看次数

需要一些帮助,SQL Server 2000,有和最大(日期)

我需要一点帮助让这个脚本做我想要的.

SELECT KM.initials, 
       TPL.debprice, 
       TMP.pricegroup, 
       TMP.date 
FROM   klientmedarbejder KM 
       INNER JOIN timeprismedarbejderprisgruppe TMP 
               ON KM.employeeno = TMP.employeeno 
       INNER JOIN timeprisprisgruppelinie TPL 
               ON TMP.pricegroup = TPL.pricegroup 
GROUP  BY KM.initials, 
          TMP.date, 
          TPL.debprice, 
          TMP.pricegroup, 
          TPL.date 
HAVING ( Max(TMP.dato) = TPL.date ) 
Run Code Online (Sandbox Code Playgroud)

我需要的是具有最新(最大)日期的debPrice.一名员工经历了他的职业生涯,偶尔他的价格会升级.价格从一组价格中选择.

  1. KlientMedarbejder 是员工表.
  2. TimeprisMedarbejderPrisgruppe 是他的记录升级到新价格的日期列表.
  3. TimeprisPrisgruppeLinie 是您可以拥有的价格列表.

我的解决方案是每位员工最多2个选项.因此:

emp A - 300 - 9 - 1900-01-01  
emp A - 500 - 4 - 2012-01-01  
emp B - 400 - 6 - 1900-01-01  
emp B - 800 - 8 - 2012-04-01  
Run Code Online (Sandbox Code Playgroud)

因此,第一条记录是他加入公司时的默认记录.2012年,他终于有了足够好的价格.现在,我需要在每个员工的升级列表上找到最新日期的答案.因此,emp A应该给我500,而emp …

sql sql-server sql-server-2000 max having

0
推荐指数
1
解决办法
2741
查看次数

使用SQL Server,有没有办法使用5553442524查询(555)344-2524?

使用PHP SQLSRV驱动程序连接到SQL Server 2000,有没有办法可以使用这段数据匹配所有这些行:5553442524

555-344-2524
(555) 344-2524
555.344.2524
1-555-344-2524
Run Code Online (Sandbox Code Playgroud)

我想这可能是通过一个特定的查询可能使用存储过程完成的?

谢谢.

php sql sql-server-2000

0
推荐指数
1
解决办法
54
查看次数

每组SQL Server 2000获取最新的2个值

所以我已经梳理了多页stackoverflow问题,看起来我一直在接近但是没有得到我需要的确切结果......所以我屈服于提交这个问题.

首先,这是在SQL Server 2000服务器上......我知道这很糟糕.

我有两个表在一个SQL查询中链接在一起,总体上是相当基本的.示例数据如下: 目前的结果

我用来获取该数据的查询是:

SELECT DISTINCT
AH.locationid as locationid
,AH.adate as date
,Min( CASE WHEN Asum.code = '201' THEN Amount END ) AS attrib1
,Min( CASE WHEN Asum.code = '204' THEN Amount END ) AS attrib2
,Min( CASE WHEN Asum.code = '206' THEN Amount END ) AS attrib3
,Min( CASE WHEN Asum.code = '212' THEN Amount END ) AS attrib4
,Min( CASE WHEN Asum.code = '215' THEN Amount END ) AS attrib5
,Min( CASE WHEN Asum.code = '218' …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2000

0
推荐指数
1
解决办法
52
查看次数

标签 统计

sql-server-2000 ×10

sql ×7

sql-server ×6

t-sql ×4

asp.net ×1

c# ×1

having ×1

indexing ×1

max ×1

php ×1

stored-procedures ×1