我在集群环境中有一台旧的 SQL Server 2000 机器。数据文件位于磁盘 S: 上,磁盘空间不足。我有另一个磁盘 B: 在有很多空间的同一个磁盘阵列中。我希望 SQL Server 使用磁盘 B: 而不是磁盘 S:
如何设置 SQL Server 将数据文件存储在磁盘 B 上?
任何帮助将不胜感激。
谢谢。
我正在尝试在 SQL Server 2000 中设置警报和通知,但它们不起作用。我正在测试它们的代理计划作业,我收到一条说明:
注意:无法通过电子邮件通知“[operatorname]”。
然后在当前错误日志中,我看到如下条目:
[264] 在没有建立电子邮件会话时尝试发送电子邮件
xp_sendmail 工作正常,我实际上在这些代理工作中使用它。通知应该告诉我程序已成功完成。我只是要求完成通知才能使其正常工作,然后我会将其更改为失败通知。
任何人都知道为什么会发生这种情况以及如何纠正?我真的很想通知工作。
我需要获取MAX交易中某个字段的聚合。我在事务中进一步使用此值。我想避免在整个表中插入,而我正在从中获取MAX事务完成时。
我研究了可用的隔离模式和锁定提示。最接近的似乎是TABLOCKX,这是唯一避免在整个表中插入(也更新和选择)的方法。
由于我不会受到表中更新或选择的影响,我希望避免在事务期间仅插入。这个有可能?
更新:执行的字段MAX仅在插入时设置,因此没有获得更新结果过时的风险。
我正在使用 SQL Server 2000。
我将 SQL Server 2000 用于旧系统网站。我刚刚遇到了一个问题,该问题将导致我在此过程中遇到无尽的麻烦。
当我在本地系统上安装服务器时,我采用了所有默认值,但现在任何日期时间数据类型都以mm/dd/yyyy格式存储。
现在这不是插入数据的问题,而是在取出数据并将其写入美国格式的页面时的问题。
该站点将位于英国的英国服务器上,因此我需要我的本地开发系统来反映该站点,并且我还希望避免在每个日期时间字段上使用 CONVERT。
尝试更改数据库排序规则几次但没有成功。
所以我的问题是这样的:
是否可以更改日期时间的格式,以便插入 23/01/1972 存储为这样而不是 1/23/1972?
服务器属性:
数据库属性
具体作为例子
CREATE TABLE [dbo].[lbg_app_section1](
[id_app_section1] [int] IDENTITY(1,1) NOT NULL,
[refid_applications] [int] NOT NULL,
[dateofbirth] [datetime] NULL,
[gender] [nvarchar](50) NULL,
[ninumber] [nvarchar](15) NULL,
[address_hsno] [nvarchar](60) NULL,
[address_twncty] [nvarchar](60) NULL,
[address_cnty] [nvarchar](60) NULL,
[address_postcode] [nvarchar](15) NULL,
[address_country] [nvarchar](30) NULL,
[dt_section1_modified] [datetime] NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud) 我需要将 SQL Server 2000 数据库恢复到大约 2 天前的备份。我刚刚备份了它并试图恢复它,但它说它正在使用中。
找出谁仍在使用它,然后如何断开它们的最佳方法是什么?
我想使数据库离线是一种简单的方法,但可能不是最安全的方法?
我有一个 1 GB.LDF的测试数据库,我想将其缩小。如果需要,我很乐意删除其内容。
如何为 SQL Server 2000 执行此操作?
我尝试了以下方法但无济于事:
BACKUP LOG Database_TEST with truncate_only
DBCC SHRINKFILE (Database_TEST_Log, 1000)
Run Code Online (Sandbox Code Playgroud) 这个旧的 SQL Server 2000 实例有一个 14 Gb 的数据磁盘和一个 30 Gb 的备份磁盘。
即使它很旧,它仍然有大量用户进行交易,因此该服务器上唯一数据库的日志文件每天都会填满数据驱动器。
我想我会把它放在简单的恢复中并刷新事务日志,但我想知道它会产生什么影响。
如果没有 T-log,您就不能使用备份恢复到完整备份时间以外的任何其他时间点,对吗?在对数据库进行此类更改时,除此之外我应该注意哪些最重要的影响?当我不生成 t-log 时,除了丢失一天的数据(每天备份到磁带)之外,还有什么可能发生?
提前致谢
我的情况是我照顾一个带有基于 VB6 的前端和一个 SQL 后端的旧系统(好消息,正在开发替代品,但同时我需要保持这种状态)。现在该应用程序在十几个站点上使用,其中大多数在SQL2000上,一个在SQL2008上,一个在SQL2008R2(均为标准)上。更改版本/版本将是一个很大的问题。
SQL2008R2 上托管的站点碰巧也是最大的站点。我们现在有一个包含超过 20 亿行和 700GB 数据的表。这是一小部分列,其中一个是用于存储序列化 blob 数据的 256 个字符 varchar。现在,当人们尝试插入、删除和更新它(通过应用程序)时,用户偶尔会互相锁定。随着时间的推移,这种情况只会变得更糟。然而,下一个最大的是 SQL2000..
我需要缩小这张桌子的大小。我可以使用哪些方法或技术来实现这一目标?理想情况下,该技术将与 SQL2000 标准版兼容,因此我可以在所有站点上使用它。然而,仅仅修复 SQL2008R2 标准上最大的违规者就可以了。
该表确实有一个标识列,并且由于表定义由应用程序控制,因此无法更改(我提到这一点是因为我相信这排除了分区视图 - 应用程序插入、更新和删除行)。
我目前的想法是删除过去 X 个月过去的所有数据(占总数的 50%),并将其分配到不向用户或应用程序公开的表中。然后在应用程序中,我可以为用户提供一种方法来请求将数据项复制回,这将通过预定的作业(可能在一夜之间)完成。然而,这对我来说感觉很笨拙。
假设在 Windows Server 2008 x64 系统上安装 SQL Server 2000 32 位不会出现任何问题,我是否正确?
我了解内存限制等,但这并不重要。
我对 SQL 有点陌生,我有看似简单的查询,但我似乎无法弄清楚函数的正确组合。我们从外部源接收时间数据作为五个字符的字符串,例如“0500p”。我想将此字符串转换为军用时间。输出所需的格式是五个字符的字符串,例如“17:00”。我试过了
SELECT CONVERT(CHAR(5),STD_TM,108)
Run Code Online (Sandbox Code Playgroud)
但我认为它并没有将我的“时间”识别为时间,因为它只是输出我输入的相同内容。
sql-server-2000 ×10
sql-server ×8
backup ×1
collation ×1
date-format ×1
hints ×1
partitioning ×1
restore ×1