标签: sql-server-2000

数据库的日志文件已满

所以我们的SQL Server 2000给了我错误,"数据库的日志文件已满.备份数据库的事务日志以释放一些日志空间."

如何在不删除日志的情况下修复此问题,就像其他网站提到的一样?

附加信息:启用AutoGrowth启用增长10%,限制为40MB.

sql-server sql-server-2000

9
推荐指数
2
解决办法
4万
查看次数

链接服务器性能和选项

在工作中,我们有两个服务器,一个运行很多人使用的应用程序,它有一个SQL Server 2000后端.我可以自由地查询这个很长一段时间但不能添加任何东西,如存储过程或额外的表.

这导致我们将第二个SQL Server链接到第一个SQL Server,然后构建一个存储过程库,使用链接服务器从双方查询数据.其中一些查询花费的时间比我想要的要长.

有人能指点我一些关于使用链接服务器的好文章吗?我特别感兴趣的是找出两者之间正在传输的数据,因为通常大多数sql语句都可以远程执行但我觉得它可能正在转移整个表,它通常只是一个小的最终的连接本地表.

此外,我目前拥有的链接服务器选项是什么:

  • 整理兼容真实
  • 数据访问真实
  • Rpc True
  • Rpc Out True
  • 使用远程整理错误
  • 整理名称(空白)
  • 连接超时0
  • 查询超时0

编辑:

只是想我会更新这篇文章我使用动态参数的openqueries一段时间以提高性能,感谢提示.但是,当你最终处理字符串时,这样做可能会使查询更加混乱.最后,今年夏天我们将SQL Server升级到2008并实现了实时数据镜像.说实话,开放查询接近我的任务的本地查询的速度,但镜像肯定使sql更容易处理.

sql-server-2000 linked-server

9
推荐指数
2
解决办法
2万
查看次数

SQL Server 2000上的SQL Server ROW_NUMBER()?

我有一个查询,允许我通过给它一个最小和最大限制从数据库表中获取记录.

它是这样的:

  SELECT T1.CDUSUARIO, T1.DSALIAS, T1.DSNOMBRE_EMPRESA, T1.DSCARGO, T1.DSDIRECCION_CORREO, T1.CDUSUARIO_ADMINISTRADOR, T1.FEMODIFICACION 
    FROM (SELECT *, 
               ROW_NUMBER() OVER (ORDER BY CDUSUARIO) as row FROM TBL_USUARIOS ) as T1 
   WHERE row > @limiteInf 
     and row <= @limiteSup 
ORDER BY DSALIAS ASC;
Run Code Online (Sandbox Code Playgroud)

现在,它在SQL Server 2005和SQL Server 2008上就像天堂一样,但是试图在SQL Server 2000数据库上运行它并说:

ROW_NUMBER它是一个未知的函数名称或类似的东西.

我能做什么??

sql sql-server sql-server-2000

9
推荐指数
2
解决办法
2万
查看次数

如何像钱一样四舍五入到小数点

我需要将货币值四舍五入到最接近的分数,然后对该舍入值进行一些操作.我不能使用Round()因为这也会向下舍入.这些都是货币价值.

123.4567 - > 123.46
1.1349 - > 1.14

在SQL中有什么办法吗?如果我需要UDF,请提供有关如何完成该UDF代码的建议.

编辑:数据存储为Float.

sql sql-server sql-server-2000

9
推荐指数
2
解决办法
2万
查看次数

连接来自不同服务器的表

有关如何从存储过程中的不同服务器连接表的任何建议?

sql-server sql-server-2000

9
推荐指数
2
解决办法
7万
查看次数

如何查找存储过程的使用位置

使用SQL Server 2000,有没有办法在所有触发程序中全局搜索模式?

调用存储过程的地方是隐藏我的.

这是我的第一篇文章,所以要善良.

search triggers sql-server-2000

9
推荐指数
2
解决办法
3万
查看次数

SQL CASE表达式 - 设置局部变量的值

我有一些使用多个if语句(大约100)的T-SQL代码,如下所示.如果第一个IF语句条件的计算结果为TRUE,它仍会评估99个语句的其余部分.

IF(@check = 'abc') SET @var1 = @value
IF(@check = 'def') SET @var2 = @value
IF(@check = 'ghi') SET @var3 = @value
IF(@check = 'jkl') SET @var4 = @value
IF(@check = 'mno') SET @var5 = @value
…
…
Run Code Online (Sandbox Code Playgroud)

我想将它们转换为使用CASE表达式.例如

CASE @check
    WHEN 'abc' THEN SET @var1 = @value
    WHEN 'def' THEN SET @var2 = @value
    WHEN 'ghi' THEN SET @var3 = @value
    WHEN 'jkl' THEN SET @var4 = @value
    WHEN 'mno' THEN SET @var5 = @value
    …
    …
END
Run Code Online (Sandbox Code Playgroud)

但是,我无法这样做,我得到一个SQL错误,说我不能在CASE表达式中使用SET. …

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

9
推荐指数
1
解决办法
7万
查看次数

SQL Server的最大大小.SQL文件或变量?

我有一个大约20MB的SQL文件/ SQL字符串.SQL服务器根本无法接受此文件.用于查询数据或将数据插入SQL服务器的.SQL文件或变量的最大大小是否有限制?

当我说变量时,它意味着通过某种编程语言甚至ETL工具将变量传递给SQL服务器.

sql sql-server sql-server-2005 sql-server-2000 sql-server-2008

9
推荐指数
2
解决办法
1万
查看次数

SQL错误:关键字"结束"附近的语法不正确

需要有关此SQL Server 2000过程的帮助.问题变得困难,因为我正在通过Oracle SQL Developer测试程序.

我正在运行使用Varchar格式的新数字序列迭代列的过程,以便为那些具有空值的人.

但我一直收到错误,所以a)我可能做错了方法b)由于使用的版本语法不正确.我主要是Oracle用户.

我一直得到的错误:SQL Error: Incorrect syntax near the keyword 'End'.这没有足够的帮助解决它.本End是指在程序的最后"终结".

任何帮助将不胜感激.

这是程序.

ALTER PROCEDURE [dbo].[OF_AUTOSEQUENCE] @JvarTable Varchar(250), @varColumn Varchar(250), @optIsString char(1), @optInterval int AS
/*
Procedure   OF_AUTOSEQUENCE
Created by  Joshua [Surname omitted]
When        20100902

Purpose     To fill up column with new sequence numbers
Arguments   varTable    - Table name
            varColumn   - Column name
            optIsString - Option: is it string or numeric, either use T(rue) or F(alse)
            optInterval - Steps in increment in …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures sql-server-2000 dynamic-sql syntax-error

8
推荐指数
1
解决办法
4万
查看次数

日期之间的T-SQL混乱

我在SQL Server 2000中使用T-SQL,我有一个表TRANSACTIONS,其日期列TRANDATE定义为DateTime,以及与此问题无关的许多其他列.

该表填充了多年的交易.我遇到了代码,测试,让我困惑.有一个简单的SELECT,像这样:

SELECT TRANDATE, RECEIPTNUMBER FROM TRANSACTIONS WHERE TRANDATE BETWEEN '12/01/2010' and '12/31/2010' ORDER BY TRANDATE
Run Code Online (Sandbox Code Playgroud)

并且它不返回我知道在该表中的两行数据.

通过上面的语句,它返回的最后一行按顺序TRANDATE为:2010-12-31 00:00:00.000

当我修改如下所示的语句时,我获得了该表中2010年12月的额外两行:

SELECT TRANDATE, RECEIPTNUMBER FROM TRANSACTIONS WHERE TRANDATE BETWEEN '12/01/2010 00:00:00' and '12/31/2010 23:59:59' ORDER BY TRANDATE
Run Code Online (Sandbox Code Playgroud)

我试图找出为什么BETWEEN运营商在12/31/2010使用第一个SELECT,上面的24个时期内不包括所有行.为什么它需要将明确的小时数添加到SELECT语句中,如第二个修改后的语句中所示,以使其拉出正确的行数?

是因为这种方式TRANDATE被定义为" DATETIME"?

基于这个发现,我认为我将不得不经历所有这些旧代码,因为这些BETWEEN操作符遍布这个旧系统,似乎并没有正确地提取所有数据.我只想先从一些人那里得到澄清.谢谢!

t-sql sql-server-2000 between

8
推荐指数
1
解决办法
1万
查看次数