小编Aar*_*and的帖子

SQL Server Management Studio Express 可以独立安装吗?

我想知道 SQL Server Management Studio Express(主要用于 Microsoft SQL Server)是否安装在独立机器上(没有任何 SQL 服务和东西)以连接到远程数据库?

我运行的是 SQL Server 2012;我的一位经理告诉我,他们希望我为指定用户创建一个 Web UI 来运行查询/更新数据库;这在我的 PHP 能力范围内;但我想为方便起见,我可以提议取消对 Web UI 的需求,因为这将花费我们的服务器管理员大量时间,但是在我们的网络机器上安装 SMSE 以连接/管理我们的数据库?

这可能吗?或者我是否必须经历创建一个显示模式、表格等的 WebUI 的痛苦任务。

sql-server ssms sql-server-2012

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

还原备份失败 - 磁盘空间不足

我有一个大约 6Gb 的备份。它是原始文件的“轻量级”备份(清除了日志表),大约为 14Gb。

我尝试在我的 SQL Express 本地服务器上恢复备份。它失败并显示类似 : 的消息System.Data.SqlClient.Error: insufficient disk space。它要求 227,891,019,776 字节,这绝对是疯狂的,几乎和我的整个硬盘一样大。

正如在其他网站上发现的那样,我尝试了RESTORE FILELISTONLY FROM DISK = 'backupfile.bak'.

数据文件(列Size)的大小为 6,888,226,816,但日志文件的大小为 221,006,987,264。该列BackupSizeInBytes返回 6,259,736,576 和 0。

因此,如果我理解正确,则在继续之前,恢复检查我是否有足够的空间来恢复日志文件的“理论”大小,而忽略实际的日志文件大小?

我怎样才能绕过它?获得备份有点困难,所以如果我能在不返回生产服务器的情况下解决我的问题,那就太好了。

谢谢 !

哦顺便说一句,我在 SQL Server 2008 R2 Express 上。

sql-server backup disk-space restore sql-server-express

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

生成脚本以自动重命名默认约束

背景:我们的一些默认列约束是在没有明确名称的情况下生成的,因此我们得到了因服务器而异的有趣名称,例如: DF__User__TimeZoneIn__5C4D869D

我希望它们都可以使用一致的命名进行管理,DF_Users_TimeZoneInfo这样我们就可以确保未来的目标表存在适当的约束(比如在 RedGate 比较中,甚至只是在视觉上)

我有一个主要适用于我想要的脚本:

select 'sp_rename N''[' + s.name + '].[' + d.name + ']'', 
   N''[DF_' + t.name + '_' + c.name + ']'', ''OBJECT'';'
from sys.tables t
    join
    sys.default_constraints d
        on d.parent_object_id = t.object_id
    join
    sys.columns c
        on c.object_id = t.object_id
        and c.column_id = d.parent_column_id
    join sys.schemas s
        on t.schema_id = s.schema_id
WHERE d.NAME like 'DF[_][_]%'
Run Code Online (Sandbox Code Playgroud)

但这只是给了我一个结果集,而不是我实际上可以传递给 exec 或其他任何东西的东西。

我怎样才能做到这一点,以便我可以只执行这些sp_rename脚本,而不必求助于复制所有返回的元素并将它们粘贴到新的查询窗口中并再次运行它们?尝试尽可能多地保存击键,以便我可以在许多环境中纠正此问题。

在此处输入图片说明

sql-server dynamic-sql sql-server-2008-r2

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

加速大型聚集索引的创建?

我有一张大表,表的行数超过30亿,这张表的数据空间大约是120GB。

和 Intel Xeon CPU E5645 @2.4GHz(2 个处理器),24 个 CPU,64G 内存,64 位 Windows Server 2008 R2 企业版。

我跑

create unique clustered index MyTable_IXC on tblFactFoo(barKey) on [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

但是用了6个多小时(实际上是6小时后报了duplicate key的错误)。

运行的时候cpu不到10%,磁盘IO不到20M/s,一般在15M/s左右,不知道这么强大的硬件如何提高创建聚簇索引的性能。

performance sql-server clustered-index sql-server-2008-r2

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

如何让触发代码只针对特定的应用程序执行?

我想知道是否可以只为我当前的应用程序启用触发器,而不是为对表执行的任何 sql 启用触发器。

情况:

有两个应用程序在同一个数据库上工作。App1 和 App2。

我在“MyTable”上有一个触发器,它应该只在 App1 执行查询时触发,而不是在 App2 执行查询时触发。

sql-server sql-server-2008-r2

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

将 sp_who2 的输出存储在表中

我正在寻找这样的东西,我可以将 sp_who2 的输出存储在表中,而不必先创建表:

create table test as exec sp_who2
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

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

从字符串转换日期和/或时间时转换失败

我有一个问题,因为我一直在使用这个查询没有问题......直到现在:

UPDATE T1
SET ORDINAL = DATEDIFF(DAY, T2.Opening_Date, T1.Date)
FROM FactTransactions T1
INNER JOIN DimStore T2 ON T1.cod_store = T2.cod_storeKey
Run Code Online (Sandbox Code Playgroud)

但现在它给了我一个错误:

从字符串转换日期和/或时间时转换失败

我不知道是怎么回事。以下是列:

Ordinal(numeric,null)
Opening_date(varchar, not null)
Date(varchar, not null)
cod_store(int,not null)
cod_storekey(PK,int, not null)
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

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

如何找出哪个主机/IP地址/程序执行了删除?

我们使用的是 SQL Server 2005。在我们的数据库中,一些行被删除;如何找到系统(主机名/IP 地址)、程序以及删除日期和时间?

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

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

sysschedules 数据类型选择

我很好奇,为什么 SQL Server 将msdb.dbo.sysschedules日期和时间的值保存intdatetime. 我认为原因可以追溯到 SQL Server 2000 中的某些内容。

是存储容量问题、性能问题还是其他问题?

database-design sql-server t-sql msdb

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

我可以跳过连接中的中间表吗?

我写了这个查询:

SELECT 
    "BD - Utilizadores".Utilizador, 
    "BD - Utilizadores"."Palavra passe", 
    "BD - Áreas".área 
FROM "BD - Utilizadores" 
INNER JOIN "BD - Permissões" 
    on "BD - Utilizadores".id = "BD - Permissões"."user_id" 
Join "BD - Áreas" 
    on "BD - Permissões".area_id = "BD - Áreas".id
Run Code Online (Sandbox Code Playgroud)

我想将表“bd - utilizadores”中的数据与“bd - áreas”连接起来。由于他们没有直接联系,我不得不使用“中间人”,即“bd - Permissões”。这是图表:

链接表

我的主要问题是,有没有其他方法可以做到这一点并获得相同的结果?

join sql-server

7
推荐指数
3
解决办法
2017
查看次数