-
sql-server – 对于绝对性能,SUM更快还是COUNT?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:144
这涉及计算与特定条件匹配的记录的数量,例如,发票金额 $100 我倾向于喜欢 COUNT(CASE WHEN invoice_amount 100 THEN 1 END) 但是,这同样有效 SUM(CASE WHEN invoice_amount 100 THEN 1 ELSE 0 END) 我原以为COUNT是有利的,原因有两个: 传达意图,即COUNT COUN[详细]
-
数据库设计 – 双入簿记数据库设计
所属栏目:[MsSql教程] 日期:2020-12-12 热度:120
我正在创建会计软件.我需要强制执行复式记账.我有每行事务一行而不是两行的经典问题. 让我们举一个例子,看看它将如何在两种情况下实现. 考虑账户现金和账户租金.当我支付每月租金时,我将100美元从我的现金账户转到我的租金账户. 每个交易一行 在单行系统中,此[详细]
-
sql – 如何计算Oracle中的唯一行
所属栏目:[MsSql教程] 日期:2020-12-12 热度:156
我有一个包含很多列的oracle数据库表.我想计算完全唯一的行数.我唯一能找到的是: SELECT COUNT(DISTINCT col_name) FROM table; 然而,这需要我列出所有列,并且我无法提出能够为我做这些的语法.我猜这是因为这个查询的性能会非常低吗?有推荐的方法吗? 解决[详细]
-
sql-server – 如何在不重新创建存储过程的情况下更改存储过程的
所属栏目:[MsSql教程] 日期:2020-12-12 热度:171
我有一些带有“SalesTraining”架构的存储过程. 我想将所有SalesTraining架构更改为“Sales”. 有没有比重新创建存储过程更好的方法? 日Thnx 解决方法 如果您使用的是SQL Server 2005或更高版本,则可以使用 ALTER SCHEMA (Transact-SQL). ALTER SCHEMA Sales[详细]
-
sql-server – 每组检索n行
所属栏目:[MsSql教程] 日期:2020-12-12 热度:153
我经常需要从结果集中的每个组中选择多个行. 例如,我可能希望列出每个客户的’n’最高或最低订单价值. 在更复杂的情况下,列表的行数可能因组而异(由分组/父记录的属性定义).这部分绝对是可选的/额外的功劳,并不是为了阻止人们回答. 在SQL Server 2005及更高版[详细]
-
sql-server – SQL Server 2005(32位)的双实例是否允许我使用>
所属栏目:[MsSql教程] 日期:2020-12-12 热度:58
有人在具有16GB RAM的64位操作系统上安装了32位版本的MS SQL Server 2005. SQL Server的两个实例正在运行,但每个进程仅使用大约1.7GB的RAM.合并后,这相当于大约3.2GB,或32位应用程序的硬限制. 我想弄清楚为什么每个实例都没有使用它自己的3.2GB最大地址空间?[详细]
-
sql-server – 为什么AT TIME ZONE不确定?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:76
SQL Server 2016的 AT TIME ZONE 似乎是不确定的.但是,我还没有找到正式说明这一点的文件,也没有给出其背后推理的理由. 为什么AT TIME ZONE不确定? 显示非决定论的例子 执行: CREATE TABLE Test ( LegacyTimestamp DATETIME,Timestamp AS LegacyTimestamp A[详细]
-
sql-server – ALLOW_SNAPSHOT_ISOLATION和READ_COMMITTED_SNAPS
所属栏目:[MsSql教程] 日期:2020-12-12 热度:149
大多数论坛和在线示例总是建议在有人询问快照,行版本控制或类似问题时将ALLOW_SNAPSHOT_ISOLATION和READ_COMMITTED_SNAPSHOT设置为ON. 我猜两个设置中的SNAPSHOT这个词有点令人困惑.我认为,为了使数据库引擎使用行版本控制而不是用于READ_COMMITTED默认行为的[详细]
-
如何在SQL查询中选择前30个字符?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:159
从DB中选择(ColName)的前20个字符 这可能吗? 解决方法 SELECT left(ColName,20) AS First20 /*(Or 30 if we are looking at the title)*/FROM YourTable[详细]
-
sql-server – 为什么不将IGNORE_DUP_KEY设置为ON?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:141
IGNORE_DUP_KEY = ON基本上告诉SQL Server插入非重复行,但是默默地忽略任何重复行;默认行为是引发错误并在不允许它们的列中存在重复时中止整个事务. 我已经处理了大量数据,这些数据通常至少有一个副本,当我不知道时,所以当我知道一个值不应该有重复时,我喜欢[详细]
-
sql-server – 我需要收缩我的数据库 – 我只是释放了很多空间
所属栏目:[MsSql教程] 日期:2020-12-12 热度:179
这个问题在这里以各种形式提出,但问题归结为: 我知道缩小数据库是有风险的.在这种情况下,我删除了这么多数据,我再也不会使用它了. 我如何缩小数据库?我缩小了哪些文件? 这样做时我应该考虑什么? 之后我该怎么办? 如果它是一个大型数据库怎么办?我可以以[详细]
-
sql-server – 为什么这个显式转换只会导致链接服务器出现问题?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:195
我通过源服务器上的视图查询链接服务器中的数据. 该视图必须包含一些标准化列,例如Created,Modified和Deleted,但在这种情况下,源服务器上的表没有任何合适的信息.因此,列显式地转换为它们各自的类型.我更新了视图,更改了一列 NULL AS Modified 至 CAST(NULL a[详细]
-
sql – 在数据库中,如果只需要年份和月份,您会使用日期字段或年
所属栏目:[MsSql教程] 日期:2020-12-12 热度:139
我正在建立一张桌子,我需要年份和月份.在 MySQL中我相信我有两个选择:(1)2个字段:1个表示年份,1个表示月份或(2)日期字段(日期总是1个). 这两个字段的优点是更快(我认为),因为MySQL不必将值从日期转换为整数,尽管这可能是微不足道的.日期字段具有“自动”验[详细]
-
sql-server – 有没有办法在TSQL中生成表创建脚本?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:52
有没有办法从纯粹在T-SQL中的现有表生成创建脚本(不使用SMO,因为T-SQL无法访问SMO).假设一个存储过程接收一个表名并返回一个包含给定表的创建脚本的字符串? 现在让我描述一下我面临的情况,因为可能有不同的方法来解决这个问题.我有一个有几十个数据库的实例.[详细]
-
SQL Server Management Studio 2012 – 从/向表导出/导入数据
所属栏目:[MsSql教程] 日期:2020-12-12 热度:195
我有超过3 000 000行的表.我尝试手动导出数据并使用SQL Server Management Studio导出数据功能到Excel但我遇到了几个问题: 创建.txt文件时手动复制和粘贴数据(这是几次,因为如果你从SQL Server Management Studio复制所有行,它会抛出内存错误)我无法用任何文[详细]
-
sql – 带/不带传递参数的条件存储过程
所属栏目:[MsSql教程] 日期:2020-12-12 热度:142
我创建了一个存储过程,当作为参数传递时,应该返回整个表.但如果studentId通过,则返回她的详细信息. 像这样的东西 create procedure usp_GetStudents @studentId int = nullas if (@studentId = null) select * from Student else select * from Student where[详细]
-
sql-server – 当我内联变量时,为什么SQL Server使用更好的执行
所属栏目:[MsSql教程] 日期:2020-12-12 热度:103
我有一个我想要优化的SQL查询: DECLARE @Id UNIQUEIDENTIFIER = 'cec094e5-b312-4b13-997a-c91a8c662962'SELECT Id,MIN(SomeTimestamp),MAX(SomeInt)FROM dbo.MyTableWHERE Id = @Id AND SomeBit = 1GROUP BY Id MyTable有两个索引: CREATE NONCLUSTERED IN[详细]
-
sql-server-2008 – SSRS:如何将所有选项添加到SSRS下拉过滤器
所属栏目:[MsSql教程] 日期:2020-12-12 热度:52
我正在使用SQL Server Reporting Services for SQL 2008 R2.我的报告通过从表中填充的两个下拉菜单进行过滤,其中一个下拉菜单显示内部版本号.我想为用户提供选择“全部”的选项,因此返回所有内部版本号的数据,而不仅仅是一个. 如何将此选项添加到我的下拉过滤[详细]
-
sql – 何时进行WHERE过滤?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:146
参见英文答案 SQL order of operations7个 如果我有这样的查询: SELECT A.ID,A.Name,A.Type,B.FirstName,B.LastName,B.DateOfBirth,C.OfficeNameFROM A INNER JOIN B ON A.ContactID = B.ID INNER JOIN C ON B.OfficeID = C.IDWHERE A.Type = 1 何时应用A.Ty[详细]
-
数据库设计 – 针对或将应用程序逻辑放入数据库层的参数是什么?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:99
注意programmers.se和dba.se的受众是不同的,并且会有不同的观点,所以在这个例子中我认为在programmers.se上复制 What are the arguments against or for putting application logic in the database layer?是有效的. 我已经找不到有关dba的讨论了,原来的帖子[详细]
-
sql – 使用Openrowset导入错误
所属栏目:[MsSql教程] 日期:2020-12-12 热度:174
我正在尝试使用数字和字母数字值导入列(来自.csv文件),但是当我运行openrowset过程时,它会正确导入数字行,但对于字母数字值,它默认为null. 表A. ID,A,B,C1,12,hh,i2,ab12,tt,b3,2,aa,o4,bc12,ee,l 使用的代码 SELECT * FROM OPENROWSET ( 'Microsoft.ACE.OLED[详细]
-
数据库设计 – 在数据仓库中实现多对多关系有哪些方法?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:162
数据仓库建模的主流拓扑(Star,Snowflake)在设计时考虑了一对多关系.在这些建模方案中面对多对多关系时,查询可读性,性能和结构会严重降低. 有哪些方法可以实现维度之间或事实表与数据仓库中的维度之间的多对多关系,以及它们在必要的粒度和查询性能方面会造成什[详细]
-
sql-server – 如何移动SQL Server数据库文件?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:75
我有一个数据库,并希望将.mdf和.ldf文件移动到另一个位置.但我不想停止MSSQLSERVER服务,我不想导出到另一台服务器. 我怎样才能做到这一点? 解决方法 您不必停止SQL Server服务来移动数据库文件,但必须使特定数据库脱机.这是因为您在访问文件时无法移动文件并[详细]
-
sql-server – 如何知道何时/是否有太多索引?
所属栏目:[MsSql教程] 日期:2020-12-12 热度:197
它时不时地运行Microsoft SQL Server Profiler,它建议我创建一堆新的索引和统计数据(“……估计有97%的改进……”). 根据我的理解,每个添加的索引都可以使SQL SELECT查询更快,但是由于必须调整索引,因此UPDATE或INSERT查询也会变慢. 我想知道的是,我什么时候[详细]
-
sql-server – 查找与给定主键关联的外键
所属栏目:[MsSql教程] 日期:2020-12-12 热度:181
我想要一种方法来确定给定数据库中的哪些列通过PK / FK关系连接.我可以通过返回给定表的PK / FK信息 SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS cu WHERE EXISTS ( SELECT tc.* FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc WHERE tc.CONSTR[详细]