标签: sql-server-2005

如何为主键创建规则

我正在使用 SQL Server 2005,我需要创建一个带有字母字符和 3 个数字的主键:

    p001
    b201
Run Code Online (Sandbox Code Playgroud)

我知道我需要创建一个规则并将该规则绑定到主键列。我在使用LIKE查询创建规则时有点困惑:

CREATE RULE pK-rule AS @pk LIKE'[a-z][0-9][0-9][0-9]'
Run Code Online (Sandbox Code Playgroud)

有人可以建议我需要改变什么吗?

sql-server-2005 sql-server constraint primary-key

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

如何以日期时间数据类型获取今天的最后日期?

选择 dateadd(s, -1, dateadd(month, datediff(month, 0, getdate())+1,0))

当我执行此查询时,它给出了“2012-01-30 23:59:59.000”。我不知道如何将其设为“2012-01-30 23:59:59.997”。如果有人知道,请说。

感谢您!!!

sql-server-2005 sql-server-2008 sql-server t-sql datetime

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

mdf,ldf 文件附加问题?

我在本地系统上创建了一个数据库。考虑数据库名称是 test。该数据库的主要文件是 test.mdf、test_log.ldf。并且也包含 ndf 文件。

然后我停止了 sql server 服务。然后将这些主文件复制到另一台服务器机器* (不是 ndf 文件)。*

现在我必须在该服务器计算机上创建一个数据库“test1”,并且必须附加这些 test.mdf 和 test_log.ldf 文件。

在主数据库上创建数据库 test1 ( file name='C:\test.mdf'), ( file name='C:\test_log.ldf') 用​​于附加 go

这个查询在服务器机器上执行。它说错误为 """ Msg 5120, Level 16, State 5, Line 1 Unable to open the physical file "D:\data\ExistTable\FG1_lt_4000.ndf". 操作系统错误 2: "2(系统找不到指定的文件。)”。

消息 5120,级别 16,状态 5,第 1 行无法打开物理文件“D:\data\ExistTable\FG2_4000_8000.ndf”。操作系统错误 2:“2(系统找不到指定的文件。)”。

消息 5120,级别 16,状态 5,第 1 行无法打开物理文件“D:\data\ExistTable\FG3_8000_inf.ndf”。操作系统错误 2:“2(系统找不到指定的文件。)”。

消息 1813,级别 16,状态 2,第 1 行无法打开新数据库“测试”。CREATE DATABASE 已中止。"""

现在该怎么办???

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

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

SQL Server 触发器的性能

我来自 Oracle/PostgreSQL 背景,很难应对 SQL Server 触发器实现的限制。

datetime如果不同列的值发生变化,我想更新两个不同的列。这是为了记录该行的两个特定状态变化。

现在 SQL Server 既没有行级触发器,也没有before update触发器。所以我的理解是,我需要加入插入和删除以找出是否发生了状态更改以及发生了哪些状态更改,然后对正在更新的表再次运行“常规”更新。

我的触发器目前看起来像这样:

create trigger ord_status_history_trigger
  on jobs
AFTER UPDATE
AS
  IF ( UPDATE(order_status) )
  BEGIN
    update jobs
      set  transfercomplete = case
                                when o.order_status = 'initial' and n.order_status = 'sent' then current_timestamp
                                else n.transfercomplete
                              end,
           installcomplete = case
                               when o.order_status = 'delivered' n.order_status = 'installed' then current_timestamp
                               else n.installcomplete
                            end
      from inserted n
        join deleted o on o.jobid = n.jobid
        join jobs aj on aj.jobid = n.jobid; …
Run Code Online (Sandbox Code Playgroud)

trigger sql-server-2005

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

在触发器内部创建数据库不起作用

我尝试使用触发器概念。如果在用户表中插入任何新行,我的触发器将触发并尝试为该新用户创建动态数据库。但是在触发器内部创建数据库不起作用。怎么可能搞定。任何人都可以有任何建议。请对此提供帮助

sql-server-2005

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

如何拆分存储过程中的逗号分隔列表

我正在研究小模块,在该模块中我们将列名作为逗号分隔的字符串传递给存储过程。在存储过程中,我们希望将列名分开。

sql-server-2005 sql-server stored-procedures t-sql

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

了解一张表上的死锁图

我不明白我们在这张表上遇到的这个死锁图(我不得不编辑确切的列名)我没有太多接触过阅读材料之外的死锁,这不符合我对死锁的基本理解和经过几个小时的网上搜索信息后,我一点也不聪明

CREATE TABLE [dbo].[Table](
[ColumnID] [int] IDENTITY(1,1) NOT NULL,
[2ColumnID] [int] NOT NULL,
[3Column] [int] NOT NULL,
[4Column] [varchar](20) NOT NULL,
[5Column] [char](4) NULL,
[6Column] [varchar](max) NULL,
CONSTRAINT [PK_TableName] PRIMARY KEY CLUSTERED 
(
[ColumnID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,  
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 10) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

这是 SQL 错误日志

10/04/2013 17:07:40 spid4s      Deadlock encountered .... Printing deadlock information                                                                                                                                                                                                    
10/04/2013 17:07:40 spid4s      Wait-for graph                                                                                                                                                                                                                                             
10/04/2013 17:07:40 spid4s                                                                                                                                                                                                                                                                 
10/04/2013 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 deadlock

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

如何备份数据库以保证数据恢复

我有 15 个客户数据库,它们在不同站点上的复制最少。我目前每晚进行备份,并通过 7zip 每晚将数据库备份传输到我们的主服务器。我们最近在下午 6 点发生了硬盘崩溃,这意味着我们在当天凌晨 2 点到下午 6 点丢失了数据库中的所有数据。如何在不影响白天数据库功能的情况下全天备份我们的数据库?我们每天进行 1,000 多笔交易,因此我们不断向数据库写入数据。我目前的方法对于每小时备份是不现实的,因为机器的性能会受到影响。

sql-server-2005 backup

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

SQL 代理作业的历史记录 (SQL Server 2005)

  • 我怎样才能看到来自 的所有可用记录SQL Agent Jobs,因为SSMS只显示减少的记录数
  • 这些记录是否存储在system databases, 不仅是普通的log files
  • 如何获取仅由 SQL 代理作业生成的记录
  • 这个历史可以设置吗

在此处输入图片说明在此处输入图片说明

sql-server-2005 sql-server

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

在事务进行时收缩事务日志

我有几个 GB 的导入到我的 SQL Server 2005(标准版)数据库中。

导入分为 4 个部分,每个部分在自己的事务中。

您可以猜到,事务日志文件非常大。我磁盘上的空间也有限,但应该适合数据。导入时,磁盘上的可用空间约为 2 GB。

在我的交易正在进行时缩小文件是否有效?也会有影响吗?

sql-server-2005 sql-server shrink transaction transaction-log

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