我正在使用 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)
有人可以建议我需要改变什么吗?
选择 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”。如果有人知道,请说。
感谢您!!!
我在本地系统上创建了一个数据库。考虑数据库名称是 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 已中止。"""
现在该怎么办???
我来自 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) 我尝试使用触发器概念。如果在用户表中插入任何新行,我的触发器将触发并尝试为该新用户创建动态数据库。但是在触发器内部创建数据库不起作用。怎么可能搞定。任何人都可以有任何建议。请对此提供帮助
我正在研究小模块,在该模块中我们将列名作为逗号分隔的字符串传递给存储过程。在存储过程中,我们希望将列名分开。
我不明白我们在这张表上遇到的这个死锁图(我不得不编辑确切的列名)我没有太多接触过阅读材料之外的死锁,这不符合我对死锁的基本理解和经过几个小时的网上搜索信息后,我一点也不聪明
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) 我有 15 个客户数据库,它们在不同站点上的复制最少。我目前每晚进行备份,并通过 7zip 每晚将数据库备份传输到我们的主服务器。我们最近在下午 6 点发生了硬盘崩溃,这意味着我们在当天凌晨 2 点到下午 6 点丢失了数据库中的所有数据。如何在不影响白天数据库功能的情况下全天备份我们的数据库?我们每天进行 1,000 多笔交易,因此我们不断向数据库写入数据。我目前的方法对于每小时备份是不现实的,因为机器的性能会受到影响。
SQL Agent Jobs,因为SSMS只显示减少的记录数system databases, 不仅是普通的log files

我有几个 GB 的导入到我的 SQL Server 2005(标准版)数据库中。
导入分为 4 个部分,每个部分在自己的事务中。
您可以猜到,事务日志文件非常大。我磁盘上的空间也有限,但应该适合数据。导入时,磁盘上的可用空间约为 2 GB。
在我的交易正在进行时缩小文件是否有效?也会有影响吗?
sql-server-2005 sql-server shrink transaction transaction-log
sql-server-2005 ×10
sql-server ×6
t-sql ×2
backup ×1
constraint ×1
datetime ×1
deadlock ×1
primary-key ×1
shrink ×1
transaction ×1
trigger ×1