小编mar*_*c_s的帖子

将 SQL Server Express 2008 升级到 R2 的危险

我的一个客户在 SQL Server 2008 Express 上达到了 4GB 的数据库限制。作为测试,我在另一台机器上安装了 R2 版本并恢复了数据库的备份。

我想升级实际的服务器本身,尽管我担心除了损害系统稳定性之外还有什么陷阱/后果。

这是因为,这台机器上正在运行其他关键应用程序(包括我不完全了解的 ERP),这需要致电另一家公司重新安装/设置。

我给了客户 3 个选项:

  1. 获取新硬件以便在那里托管 R2 服务器(独立于当前服务器)。
  2. 使用作为测试的当前设置。
  3. 冒险并在实际服务器上安装 R2 的更新,冒着 5%(或不管它是多少)系统中任何事情变得不稳定的风险。

我还考虑过使用 clonzilla (ghost) 等克隆整台计算机,但由于我是远程支持,这需要我旅行约 500 公里。

此外,这是一个严重的问题,因为他们无法向该数据库添加新记录。

sql-server-2008 sql-server-2008-r2 upgrade

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

如何在不同的数据库中创建触发器?

是否可以创建一个存储过程,在与存储过程本身所在的数据库不同的数据库中创建表触发器 (DDL) 。数据库位于同一服务器实例上。如果是,那么如何?

例如,这不起作用:

create PROCEDURE [dbo].[CreateTriggrer]
  @db varchar(60)
AS
BEGIN
  SET NOCOUNT ON;   
  declare @statement nvarchar(max) = N'CREATE TRIGGER [dbo].[TestTrigger]
   ON  [$database$].[dbo].[TestTable] 
   AFTER INSERT, UPDATE, DELETE
AS 
BEGIN
  PRINT ''test''
END'

    set @statement = REPLACE(@statement,'$database$',@db)
    EXEC dbo.sp_executesql @statement = @statement

END
Run Code Online (Sandbox Code Playgroud)

当这样调用时:

EXEC [dbo].[CreateTriggrer] @db = N'TestDatabase'
Run Code Online (Sandbox Code Playgroud)

它返回此错误:

消息 2108,级别 15,状态 1,过程 TestTrigger,第 6 行
无法在“TestDatabase.dbo.TestTable”上创建触发器,因为目标不在当前数据库中。

这是公平的。有没有办法实现我想要的?

sql-server-2008 sql-server

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

如何最大限度地减少在 SQL Server 上重新计算索引的需要?

我们有相当大的表(500 密耳行),我们期望频繁插入。桌子有大约。每个索引 2 个。问题是我们担心,当索引重新计算时,整个表被锁定,所有查询都会超时(在重新计算期间)。

有没有办法尽量减少重新计算索引的发生?例如,让节点在创建时变大,这样更多添加的指针将适合索引,而无需重新平衡索引?

我们有 SQL Server 2008 R2。

index sql-server sql-server-2008-r2

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

多字节替换在 SQL Server 中不起作用

为什么一个有效而另一个无效?

SELECT REPLACE(N'IA?I' ,N'?','x') -- doesn't match (returns 'IA?I')
SELECT REPLACE('IA?I' ,'?','x') -- works (returns 'IAxI')
Run Code Online (Sandbox Code Playgroud)

我的猜测是在第二个示例中 SQL Server 会看到 '?' 作为 2 个字符 (0x19 02) 并且不做一些破坏多字节匹配的整理优化。

应该怎么做才能使多字节示例工作?

sql-server t-sql

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

通过 xgb 收缩 SQL Server DB

我试图释放数据库中的一些空间,首先是通过换出和归档分区。数据库很大,我想开始释放驱动器上的一些空间,但我不想完全缩小数据库,因为这需要数周时间。

是否可以将 SQL Server DB 缩小 10GB?

谢谢大家!

厘米

sql-server shrink

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

在 SQL Server 2008 R2 中查找没有主键的表?

这是我在 SQL Server 2008 R2 中查找主键、外键的查询:

select  * 
from information_schema.table_constraints
where constraint_type = 'PRIMARY KEY'
Run Code Online (Sandbox Code Playgroud)

知道我需要在我的数据库中选择没有主键表。

谢谢

sql-server sql-server-2008-r2

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

遍历表中的所有记录并在 SQL Server 中编辑列

如何遍历 SQL Server 表中的所有行并编辑列?你知道的:

  • 跳过了很多ID。
  • creatie每次一分钟都必须对该列进行编辑。所以第一个必须是 15:00:00,第二个 15:01:00,第三个 15:02:00 等等。
  • 总共有 54 条记录。
  • 我使用的是 SQL Server 2014 Express 版本

我使用了下面的查询,但最大 ID 是 24697...所以循环很长。

declare @var datetime = '2015-10-19 0:0:0';
declare @counter int = 1;
declare @max int = (select max(id) from topic);

while (@counter <= @max) begin
    update Topic set Creatie = Creatie + @var where id = @counter;
    set @counter += 1;
    set @var += '0-0-0 0:1:0'
end;
Run Code Online (Sandbox Code Playgroud)

因为我每次都这样做@var += '0-0-0 0:1:0',我不知道 24697 次后的结果是什么(如果它有效)。

这是前 25 …

sql-server update sql-server-2014

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

如何从 SQL 语句中获取列名?

有没有简单的方法来获取从 SQL 语句返回的列名?

如:

 SELECT * 
 FROM ATable 
 FULL OUTER JOIN BTable b ON a.SOME_KEY = b.SOME_KEY
 FULL OUTER JOIN CTable c ON b.SOME_ID = c.SOME_ID
 FULL OUTER JOIN DTable d ON a.SOME_OTHER_ID = d.SOME_OTHER_ID
 WHERE a.SOME_KEY = @key AND c.SOME_SERIAL_NR = @serialnumber
Run Code Online (Sandbox Code Playgroud)

我似乎无法得到

select column_name 
from information_schema.columns 
where table_name = 'table' 
Run Code Online (Sandbox Code Playgroud)

在我当前的环境中工作

sql-server-2008

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

在 SQL Server 标准版上重建索引

我们在 Windows Server 群集上安装了 SQL Server 2008 R2 Standard。我想对数据库上的所有索引进行碎片整理。

禁用所有连接并允许重建索引的最佳方法是什么?

我可能无法关闭 Web 服务器。我怀疑单用户模式是否可行,因为我的连接可能会被踢出。我也怀疑受限用户模式会在应用程序以 dbo 身份登录时起作用。

想到的一种解决方案是禁用 SQL Server 端口,但不太确定。有什么建议?

编辑:我想将数据库设置为 single_user\restricted_user 并通过 DAC 连接并从命令行运行碎片整理作业。你认为这会奏效吗?

clustering sql-server-2008-r2 fragmentation standard-edition

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

修补 SQL Server 2012

如果我在 SQL Server 2012 SP1 中应用累积更新 3,在应用 CU 3 之前是否还需要执行累积更新 1 和 2?而且,您如何知道 SQL Server 中已经应用了哪些 CU 或修补程序?

sql-server sql-server-2012 patching

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