我们使用的是 SQL Server 2012(Service Pack 3),最近我们从一台服务器转移到了另一台服务器。之后我们遇到了问题SQL排序顺序问题。我们有很多报告,其中 order by 子句不存在。移动后,排序顺序已更改,报告中的结果与实际结果不同。
我知道通过在所有存储过程和视图中放置 Order by 子句来解决这个问题。由于文件数量庞大,有什么办法可以在SQL配置中解决这个问题吗?
我最近升级了我的 SQL Server 2014 硬件。CPU 配置文件看起来很奇怪。我有 24 个 CPU,所有 CPU 在线可见,MAXDOP 为 0。SQL CPU 使用率达到 60% 的峰值并且不会超过这个值,尽管查询是高度 CPU 密集型的,并且大部分处于运行/可运行状态。我检查了会话日志转储,总请求时间仅略高于 CPU 时间,因此排除了 io 等待等。还检查了 OS CPU 使用率跟踪仅略高于 SQL CPU 使用率。想知道为什么 CPU 没有被充分利用。以前的硬件有 16 个 CPU 并且过去饱和度约为 95%
我正在尝试运行动态 SQL 语句,它适用于任何storename没有撇号的语句。但是,当其中storename包含撇号时,语法不正确,但是在这种情况下我无法使用动态 SQL。
我应该如何修改此语法storename以包含 apastrophe?
这是 DDL
Declare @TestHyphens Table(StoreName varchar(500),topItemSale varchar(500))
Insert Into @TestHyphens (StoreName, topItemSale) Values
('Bob''s Burger''s','Pen'), ('Jacks Coffee Shop','Pencil')
,('Larry''s Hair Shack','Rainbow'), ('Manny''s Sandwich Shop','Sunglasses')
Declare @sql nvarchar(4000), @storename varchar(500)
Declare db_cursor CURSOR FOR
Select StoreName
FROM @TestHyphens
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @storename
While @@FETCH_STATUS = 0
BEGIN
Set @storename = REPLACE(@storename, '''', '''''''''');
SET @storename = CHAR(39)+CHAR(39)+@storename+CHAR(39)+CHAR(39);
SET @SQL = N'Select * from @TestHyphens where …Run Code Online (Sandbox Code Playgroud) 在 SQL Sentry 中启用 Fragmentation Manager 会导致 SQL 实例运行缓慢?是否需要额外的资源?
我正在尝试将表从 SQL 服务器移动到 AWS Redshift。在尝试移动 NVARCHAR 字段时,我读到 Redshift 在内部将 NVARCHAR 转换为 VARCHAR。那么,SQL Server 中的 NVARCHAR(100) 将等同于 Redshift 中的 VARCHAR(100) 或 Varchar(200) 吗?如果我想直接将 SQLServer 中的 NVARCHAR 字段定义为 Redshift 中的 VARCHAR,是否需要将字段长度加倍?
我有一个数据库 (DB1),它同步到另一台服务器上的 (DB2)(通过 AlwaysOn - SQL Server 2014)。
我想授予用户对 DB2 的读取权限。我在 DB1 中创建了一个 SQL 登录名和数据库用户。新的数据库用户迁移到 DB2,但 SQL 登录名没有迁移(这是有道理的)。
问题是,当我尝试在 DB2 上为用户创建 SQL 登录并授予用户对 DB2 的读取权限(绑定到来自 DB1 的用户帐户)时,我收到一条错误消息,指出 DB2 是只读的且无法修改。
那么,我怎样才能做到这一点?
我有一个包含数亿行的大型平面文件。我只想插入其中的前 1000 个。我怎样才能做到这一点?
下面的代码是一个动态 sql,它将为您提供系统中所有警报的列表。
有用。
出于这个问题之外的原因,代码中有一个临时表。
这个问题与我在创建临时表之前确保临时表不存在的方式有关。
我在 try catch 块中放置了一个删除表,如下面的代码所示。
我的问题是:
我仍然有一些服务器 sql-server-2008-r2 但大多数我的服务器是 sql server 2016。
EXEC Sp_executesql
N'
begin try
drop table #tmp_sp_help_alert
end try
begin catch
end catch
create table #tmp_sp_help_alert (
id int null, name nvarchar(128) null,
event_source nvarchar(100) null,
event_category_id int null,
event_id int null,
message_id int null,
severity int null,
enabled tinyint null,
delay_between_responses int null,
last_occurrence_date int null,
last_occurrence_time int null,
last_response_date int null,
last_response_time int null,
notification_message nvarchar(512) null,
include_event_description …Run Code Online (Sandbox Code Playgroud) sql-server dynamic-sql sql-server-2008-r2 error-handling temporary-tables
我有一个有两列的表,一列是发布类型,另一列是值。
来源表:
+-----+-------+
|Type | Value |
+-----+-------+
| C | 381.22|
| D | 25.49 |
| C | 25.49 |
| D | 25.48 |
| C | 705.56|
| D | 80.00 |
+-----+-------+
Run Code Online (Sandbox Code Playgroud)
我需要创建一个分离类型 C 和 D 的视图,并列出它们的值。
我需要它看起来像这样:
+------+-----+
|Credit|Debit|
+------+-----+
|381.22|25.49|
|25.49 |25.48|
|705.56|80.00|
+------+-----+
Run Code Online (Sandbox Code Playgroud)
我尝试使用 SELECTS 创建两个单独的虚拟列,只是为了列出相应类型的值。
SELECT
(SELECT [value] FROM [table] WHERE [type] IN ('D')) AS Debit,
(SELECT [value] FROM [table] WHERE [type] IN ('C')) AS Credit
Run Code Online (Sandbox Code Playgroud)
发生错误是因为两个 SELECTS 都返回多个结果:
Subquery returned …Run Code Online (Sandbox Code Playgroud) sql-server ×10
t-sql ×2
aws ×1
bcp ×1
bulk-insert ×1
dynamic-sql ×1
logins ×1
memory ×1
redshift ×1