标签: sql-server

如何防止sql server中的另一个用户删除sysadmin用户

我在我的服务器上安装了一个遗留应用程序,该应用程序配置为仅与一个用户“sa”一起工作,并且在此应用程序中编写了类似定时炸弹的脚本,只要它找到另一个用户,它就会毫不费力地删除该用户。

我们需要使用另一个应用程序访问数据库,并且“sa”的密码丢失,因此剩下的唯一方法是创建另一个具有系统管理员权限的用户。

但由于脚本删除了所有用户,我不能做任何特别的事情,所以我的问题是:

每次尝试删除我的用户时,如何阻止该脚本或回滚其工作?

trigger sql-server rollback

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

如何将值表从 SSIS 传递给存储过程?

我对 SSIS 真的很陌生,所以我为“愚蠢”的问题道歉。我知道开放式的“最佳实践”问题很不受欢迎,所以我会尽量具体。

我有一个基本的 SSIS 包,它将数据从一个 SQL 数据库移动到另一个 SQL 数据库。在数据流任务部分中,只有很少的数据转换和一个过滤器在进行。我一直试图想出一种将数据写入目的地的好方法,但它不能直接进入“最终”表(就像我在数据流目的地任务中所做的那样)。我更愿意将它作为变量传递给存储过程。我看到两个选项,我都不喜欢这两个选项:

  1. 我可以使用 OLE DB 命令并逐行循环我的数据,为每个数据运行存储过程。
  2. 我可以将数据写入临时表并从控制流部分调用存储过程。

对于选项 1,必须遍历每个数据行似乎非常糟糕。有没有办法调用存储过程并传递给它一个表?

我在工作中有人告诉我不要使用临时表,所以选项 2 似乎不在表中。我想如果我有理由使用选项 2,作为“最佳实践”,我可能能够说服他们让我以这种方式加载数据。

我错过了什么吗?有没有其他方法可以解决这个问题?如果您能在答案中附上原因,将不胜感激,因为我正在尝试理解押韵和原因。

编辑:为了澄清,我试图找到一种传递表值参数的好方法。

sql-server-2008 sql-server ssis

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

将 SQL Server 2000 数据库导出到 Server 2012

我有一个运行 Windows Server 2000 的生产环境和一个使用 SQL Server 2012 的开发环境。我需要更新数据库并使用 .ASP 实现一些新功能。有没有办法导出2000的数据库,然后导入到2012?我能找到的只是这个关于将数据库转移到 2008 年的 MS 支持文档。

http://support.microsoft.com/kb/962355

sql-server export sql-server-2012

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

将 SQL Server 脚本化为多个 SQL 脚本

我有一个包含 2GB 数据的 SQL Sever 表。我可以为文件创建脚本。但是脚本文件没有打开。我想将该脚本文件拆分为多个脚本文件。

sql-server

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

即使模型设置为 false,自动关闭属性也会在附加 db 后重置为 true

我正在使用 SQL Server Express 2008 R2。新创建的数据库的自动关闭属性将设置为与模型 db 相同的值。在我的例子中,我已经将模型的 autoclose 设置为 false,这样当我创建一个新数据库时,它也会将 autoclose 设置为 false。

如果我将自动关闭设置为 false 的数据库分离然后附加它,则自动关闭设置为 true。我期望 autoclose 为假,因为它将从模型数据库继承其属性。在我的情况下,分离和附加数据库会导致 autoclose 属性设置为 true。

为什么会这样?这个问题有什么解决办法吗?

database-design sql-server sql-server-2008-r2

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

数据库恢复模型 - 简单与完整

SIMPLE 恢复模型是否执行与 FULL 恢复模型相同的事务日志记录?即保留每个插入/更新/删除事务的记录?

如果是这种情况,那么为什么要使用 FULL Recovery 模式?在 SIMPLE Recovery 中,检查点每分钟在繁忙的数据库上运行一次,因此数据被写入磁盘。

在 SIMPLE 恢复模型中,数据丢失可能发生在哪里?

谢谢!

sql-server disaster-recovery

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

多行和多列的 Where 子句

我有一个 UDT,它接收 2 个参数,即 ID 和质量

CREATE TYPE [dbo].[ItemUdt] AS TABLE(
[ID] [int] NOT NULL,
[Quality] [int] NULL
)
Run Code Online (Sandbox Code Playgroud)

此 UDT 将用作从表中过滤记录的条件

@ItemList AS ItemUdt READONLY
Run Code Online (Sandbox Code Playgroud)

我想要做的是获取与 ID 和质量都匹配的记录

SELECT * FROM tbl_Item 
WHERE [ID] IN (SELECT ID FROM @ItemList)
AND [Quality] IN (SELECT Quality FROM @ItemList)
Run Code Online (Sandbox Code Playgroud)

但是,上面的查询将匹配包含来自 UDT 的所有质量的所有列出的 ID。例如,如果 UDT 由 (1001, 'Good'), (1002, 'Bad') 组成,则结果将显示所有带有 1001 和 1002 的 ID,以及质量为 'Good' 和 'Bad' 的。但我的预期结果如下:

SELECT * FROM tbl_Item 
WHERE ([ID] = '1001' AND [Quality] = 'Good')
OR …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

如何将 SQL Server 2012 版本 11.0.3000.0 转换为 SQL Server 2012 版本 11.1.3000.0?

我有SQL Server 201211.0.3000.0 版本。

在此处输入图片说明

我需要我的版本升级到SQL Server 2012 SP1,因为我需要在安装累积4Sql Server 2012 Cumulative Update 4使用PowerPivotMultidimensional Database

在安装之前,Sql Server 2012 Cumulative Update 4我需要将我的升级SQL ServerService Pack 1.

如何将我的版本更新到 SP1。

我播下这个链接并下载SQLServer2012SP1-KB2674319-x64-ENU.exeSQLServer2012SP1-FullSlipstream-ENU-x64.iso但这在我的服务器中不起作用。

我有这个错误:

在此处输入图片说明

sql-server upgrade sql-server-2012 service-pack

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

什么会导致 SQL Server 2008R2 上的读取速度变慢?

我们的主数据库大小为 15GB。服务器有 16GB RAM。我们使用简单的恢复模型。

最近,我们注意到我们的自定义应用程序查找(只是使用即席 SQL 语句进行基本读取)速度明显减慢。大多数情况下会多几秒钟。

我不是 SQL Server 管理员,并且不知道接下来该去哪里。

我们监控了CPU,它似乎从未达到峰值。与 RAM 相同。我们有大量的索引,但我认为这只是写入速度的问题......

对我下一步可以看什么有什么建议吗?

sql-server database-tuning sql-server-2008-r2

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

使用文件流在 SQL Server 中可存储的 blob 数量是否有限制?

filestream用来存储 blob(文件)。我使用 SQL Server 2008 R2

一些客户有 60k 个文件 (50GB)。他们问我是否有限制,也是因为NTFS,会有问题。

不知何故,疑问是:如果 blob 的数量增长太多,是否存在限制,超过该限制 SQL Server 将无法正确处理它们?

我认为 SQL Server 处理得很好,但有人有更好的答复吗?

谢谢

sql-server filestream

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