小编Jon*_*gel的帖子

为什么 GROUP BY 语句中的通配符不起作用?

我正在尝试使以下 SQL 语句起作用,但出现语法错误:

SELECT A.*, COUNT(B.foo)
FROM TABLE1 A
LEFT JOIN TABLE2 B ON A.PKey = B.FKey
GROUP BY A.*
Run Code Online (Sandbox Code Playgroud)

这里,A 是一个有 40 列的宽表,如果可能,我想避免在 GROUP BY 子句中列出每个列名。我有很多这样的表,我必须在这些表上运行类似的查询,所以我必须编写一个存储过程。解决这个问题的最佳方法是什么?

我正在使用 MS SQL Server 2008。

sql-server-2008 sql-server t-sql group-by

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

将文章添加到事务发布而不生成新快照

使用带有拉取订阅者的 SQL 2008 R2 事务复制,当我们添加一篇文章时,我想避免创建整个快照(数据库约为 80 GB,因此这需要几个小时)。

这篇文章 中,我已经看到了如何通过关闭即时同步来使用部分快照来做到这一点,但这对我们不起作用。

理想情况下,我只想将它作为我们的 db 脚本的一部分运行来创建表,所以如果我们想要复制它,我们会这样做:

Create Table ...    
sp_addArticle ...    
sp_PushThisToOurSubscribersNow    
Run Code Online (Sandbox Code Playgroud)

replication sql-server sql-server-2008-r2

27
推荐指数
4
解决办法
5万
查看次数

与事务结合触发

假设我们有以下情况:

我们有一张桌子(比方说Table_A),它有一个触发器INSERT。触发器作业是table_B根据 中插入的值更新 中的某些行table_A

现在,当我们简单地在表中插入一行时一切正常,但是我们通过事务插入数据的情况呢?触发器会等到所有事务语句成功运行,还是会在识别到插入时触发?。如果触发器在识别出第一个插入时立即触发,如果事务在最后一行失败会发生什么?这种情况有什么机制吗?

trigger sql-server transaction

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

为什么允许每个人都使用 sa 登录名是不好的做法?

甚至 Microsoft也不鼓励使用 SQL Server 身份验证模式,但我们的应用程序需要它。

我读过最好的做法是不要让用户sa直接使用登录名,而是使用 Windows 身份验证并允许这些帐户(或帐户组)系统管理员权限。

  • 本质上不是一回事吗?有什么优点/缺点?
  • 最佳实践如何提高我的 SQL Server 实例的安全性?
  • 这仅适用于生产实例,还是也适用于我们的内部开发实例?

security sql-server

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

我应该将 SET NOCOUNT ON 添加到我的所有触发器中吗?

这是你应该拥有的相当普遍的知识

SET NOCOUNT ON   
Run Code Online (Sandbox Code Playgroud)

默认在创建新存储过程时。

Microsoft 已在 2012 年更改了默认模板以包含此内容。我认为这对于触发器应该是相同的,但它并未包含在模板中。

这是故意的还是只是疏忽?

trigger sql-server t-sql

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

我如何知道我的 SQL 数据库有什么恢复模型?

是否可以运行 SQL 命令来确定数据库的恢复模式?我想知道它是否完全恢复。

sql-server-2005 sql-server

19
推荐指数
2
解决办法
8170
查看次数

如何中断SQL脚本执行

我正在处理 sql 脚本,如果不满足某些条件,我需要停止继续该脚本。

当我谷歌它时,我发现 20 严重级别的 RaisError 将终止它。但由于某些原因,我不能使用该选项。

请向我提供停止 SQL 脚本执行的可能替代方法。

sql-server-2005 sql-server error-handling

18
推荐指数
3
解决办法
6万
查看次数

varchar 大小在临时表中是否重要?

在我妻子的工作中,关于仅使用存储过程中临时表中的varchar(255)所有varchar字段存在争议。基本上,一个阵营希望使用 255,因为即使定义发生变化它也始终有效,而另一个阵营则希望坚持使用源表中的大小以提高潜在的性能。

表演营对吗?是否有其他影响?他们正在使用 SQL Server。

performance sql-server datatypes temporary-tables

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

最佳实践 SQL Server 维护计划是什么样的?

我是埃因霍温 Fontys 大学的学生,我目前正在进行一系列采访以帮助开发 SQL Server 工具,我想从该领域的专家那里得到反馈。

我的问题之一是:

最佳实践 SQL Server 维护计划是什么样的?您为此使用 SQL Server 维护计划,还是使用自定义脚本?

sql-server best-practices maintenance

15
推荐指数
2
解决办法
7130
查看次数

SQL Server 未使用所有 CPU 内核/线程

升级 SQL Server 的硬件后,我们在 Windows 任务管理器中注意到 SQL 实例仅使用了可用线程的一半:

任务管理器.

服务器具有以下硬件和软件:

  • Windows 2008 R2 企业版 64 位 SP1
  • Intel Xeon E7-4870 - 4 个处理器(40 个内核,80 个线程)
  • Microsoft SQL Server 2012 企业版(64 位)

运行select cpu_count from sys.dm_os_sys_info返回 40。

操作系统可以看到所有 80 个线程。

为什么只使用了服务器一半的处理能力?

我们在两台服务器上拥有相同的硬件和软件,并且它们都表现出相同的行为。

sql-server sql-server-2012 hardware

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