参考这个问题:
我如何在单个查询中获得记录计数的百分比,如下所示:
ItemId count Percent
------------------------------------
1 2 33.3
2 0 0
3 1 16.6
4 3 50.0
Run Code Online (Sandbox Code Playgroud)
谢谢
我有以下表格:
Actual Optional
------ --------
4 3
13 6
20 7
26 14
19
21
27
28
Run Code Online (Sandbox Code Playgroud)
我要做的是选择:
1)"实际"表中的所有值.
2)如果它们形成具有"实际"表值的连续系列,则从"可选"表中选择值
预期的结果是:
Answer
------
4
13
20
26
3 --because it is consecutive to 4 (i.e 3=4-1)
14 --14=13+1
19 --19=20-1
21 --21=20+1
27 --27=26+1
28 --this is the important case.28 is not consecutive to 26 but 27
--is consecutive to 26 and 26,27,28 together form a series.
Run Code Online (Sandbox Code Playgroud)
我使用递归cte编写了一个查询但是它永远循环并且在递归达到100级后失败.我遇到的问题是27场比赛26场比赛,27场比赛27场比赛27场比赛27场比赛28场比赛27场比赛......(永远)
这是我写的查询:
with recurcte as
(
select num as one,num as two from …Run Code Online (Sandbox Code Playgroud) sql sql-server recursive-query common-table-expression sql-server-2008
我注意到一个有趣的性能变化,大约有150万个输入值.有人能给我一个很好的解释,为什么会这样?
表非常简单.它由(bigint,bigint,bigint,bool,varbinary(max))组成.我在前三个bigint上有一个pk clusered索引.我只插入布尔"true"作为数据varbinary(max).
从那时起,表现似乎非常稳定.
图例:Y(以毫秒为单位)| X(插入10K)

我也很好奇我在图上有不断的相对较小(有时非常大)的峰值.
来自尖峰之前的实际执行计划.

图例:
我插入的表:TSMDataTable
1. BigInt DataNodeID - fk
2. BigInt TS - 主
时间戳3.BigInt CTS - 修改时间戳
4.位:ICT - 保留最后插入值的记录(提高读取性能)
5.数据: Data
Bool值当前时间戳保持不变
环境
它是本地的.
它不共享任何资源.
它是固定大小的数据库(足以使它不扩展).
(电脑,4核,8GB,7200rps,Win 7).
(Sql Server 2008 R2 DC,处理器亲和力(核心1,2),3GB,)
sql-server performance-testing sql-server-2008 sql-server-2008-r2 sql-server-performance
我想对给定SQL Server数据库中的所有存储过程运行标准grep(假设2005或更高版本).我找到了各种简单的查询来列出包含特定对象的存储过程的名称,例如
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%table_I_want_to_find%'
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是,像grep一样,列出已识别的存储过程中的特定行(所以我不必手动打开每一行,看看它是否是我正在寻找的).
我对T-SQL或PowerShell中的解决方案持开放态度,甚至是现成的实用程序.
所以我有一个存储过程(sql server 2008 r2)这样的东西
BEGIN TRAN
BEGIN TRY
//critical section
select value
update value
//end of critical section
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
Run Code Online (Sandbox Code Playgroud)
我希望没有两个存储过程读取相同的值.换句话说,读取和更新应该是原子的.这段代码做到了吗?如果不是我该怎么办?
我已阅读以下文章.他们引用了这个,
SQL Server是一个区分大小写的后端应用程序.这意味着名为"addr"的表与名为"ADDR"的表区分开来.但是,由于Microsoft Query是基于MS-DOS的应用程序,因此无法区分案例; 因此,Microsoft Query将"addr"和"ADDR"视为同一文件.
现在我想知道他们的意思是case-sensitive back-end application什么?使用query带有安全性case-insensitivity吗?
提前致谢.
我有一个旧的asp.net 1项目(它在旧服务器上工作正常,mytable存在于db中.现在我正在尝试将其升级到asp.net 4
我的连接字符串是:
<add key="SqlConnection"
value="DRIVER={SQL Server};SERVER=bel\SQLEXPRESS;Trusted_connection=yes;DATABASE=mydb;option=3;"/>
Run Code Online (Sandbox Code Playgroud)
我收到错误
错误[42S02] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无效的对象名称'mytable'.
OdbcCommand dataCommand = new OdbcCommand("select*from mytable",dataConnection);
dataCommand.CommandTimeout = 900;
OdbcDataReader dataReader = dataCommand.ExecuteReader(CommandBehavior.CloseConnection);
当我写SQL时,select * from mydb.dbo.mytable一切正常
我应该在数据库设置(安全性,架构,dbo)或连接字符串中更改什么?
保留列是一个varchar,对它执行求和我想将它转换为deciaml.但是下面的SQL给了我一个错误
select
cast(Reserve as decimal)
from MyReserves
Run Code Online (Sandbox Code Playgroud)
将数据类型varchar转换为数字时出错.
我添加了isnumeric而不是null来尝试避免这个错误,但它仍然存在,任何想法为什么?
select
cast(Reserve as decimal)
from MyReserves
where isnumeric(Reserve ) = 1
and MyReserves is not null
Run Code Online (Sandbox Code Playgroud) 我试图通过脚本创建数据库后创建SQL Server登录.登录是主机PC的本地登录,此脚本将在多个主机上运行.
我想做的是以下内容:
USING MyDatabase
CREATE MyUser FOR LOGIN USER <computer name>/MyUser
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做是将计算机名称(例如Location0001)合并到此语句中.
登录确实存在于每台计算机上并且已经在SQL Server上列出,因为它可以访问其他数据库.
如果相关,脚本应该能够在SQL Server 2008上运行.
每台机器的登录名如下:
Location0001\MyUser
Location0002\MyUser
Location0999\MyUser
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很感激,谢谢.
编辑:根据接受的答案我的最终解决方案如下:
DECLARE @cmd VARCHAR(200)
SET @cmd = N'CREATE USER [MyUser] FOR LOGIN [' + HOST_NAME() + '\MyUser]'
EXEC (@cmd)
Run Code Online (Sandbox Code Playgroud) 我有一些具有许多字段的Access表.我已将每个访问表迁移到6或7个sql server表.我正在使用sql server 2008.现在我想使用Access作为前端,以便我可以在访问中输入数据,但它将存储在sql server中.我知道我必须建立ODBC连接.但我不确定如何创建一个访问表单来将其用作前端.如果这是一个基本问题,我很抱歉......
sql-server ×10
sql ×4
atomicity ×1
grep ×1
ms-access ×1
odbc ×1
powershell ×1
schema ×1
t-sql ×1