tsql相关内容

TSQL PIVOT 多列

我有下表,但不确定是否可以旋转它并保留所有标签. 比率结果评分等级流动比率 1.294 60 良好传动比 0.3384 70 好性能比 0.0427 50 满意总计 NULL 180 好 我承认我不太擅长使用枢轴,所以经过多次尝试后得到了这个输出: SELECT 'RESULT' AS 'Ratio',[流动比率] AS '流动比率',[Gearing Ratio] AS 'Gearing ..
发布时间:2021-12-02 15:12:30 数据库

如何重写 IS DISTINCT FROM 和 IS NOT DISTINCT FROM?

如何在不支持它们的 SQL 实现(例如 Microsoft SQL Server 2008R2)中重写包含标准 IS DISTINCT FROM 和 IS NOT DISTINCT FROM 运算符的表达式? 解决方案 IS DISTINCT FROM 谓词作为 SQL:1999 的特性 T151 引入,它的可读否定,IS NOT DISTINCTFROM,作为 SQL:2003 的特性 ..
发布时间:2021-12-02 15:11:40 数据库

其中包含逗号分隔值的列中的值

我希望为 SQL Server 2008 编写一个 SQL 语句,该语句选择列包含值的条目,现在列中的值是一个逗号分隔的列表(通常 - 只能有一个条目(并且没有前导逗号)) 那么 In 检查的是“这个值是否包含在列表中的某个地方?",例如: COLUMN = 猫、狗、麻雀、鳟鱼、牛、海马COLUMN 包含 Cat 吗?是的COLUMN 是否包含马?不列是否包含绵羊?不 或 COLUMN = ..
发布时间:2021-12-02 15:11:21 数据库

对UPDLOCK、HOLDLOCK感到困惑

在研究表格提示的使用时,我遇到了这些两个问题: 我应该使用哪些锁提示(T-SQL)? HOLDLOCK 对 UPDLOCK 有什么影响? 这两个问题的答案都说使用(UPDLOCK, HOLDLOCK)时,其他进程将无法读取该表上的数据,但我没有看到这一点.为了进行测试,我创建了一个表并启动了两个 SSMS 窗口.在第一个窗口中,我运行了一个使用各种表提示从表中选择的事务.在事务运 ..
发布时间:2021-12-02 15:09:47 数据库

SQL Server 中的 CASE 语句不支持 OR

不支持CASE 语句的WHEN 子句中的OR 运算符.我该怎么做? CASE ebv.db_no当 22978 或 23218 或 23219 那么“WECS 9500"其他 'WECS 9520'END 为 wecs_system 解决方案 该格式要求您使用: CASE ebv.db_no当 22978 那么“WECS 9500"当 23218 那么“WECS 9500"当 23219 ..
发布时间:2021-12-02 15:08:51 数据库

SQL Server - 如何锁定表直到存储过程完成

我想这样做: 创建过程A为锁表a-- 做一些与a无关的事情来准备更新a-- 更新一个解锁表a返回表 b 这样的事情可能吗? 最终我希望我的 SQL Server Reporting Services 报告调用过程 A,然后仅在过程完成后显示表 a.(我无法更改过程 A 以返回表 a). 解决方案 自己和来自 David Moye 提供的链接需要这个答案,决定这样做,并认为它可能对 ..
发布时间:2021-12-02 15:07:18 数据库

仅从 SQL DATE 获取月份和年份

我只需要从 SQL Server 中的日期字段访问 Month.Year. 解决方案 除了已经给出的建议之外,我还可以从您的问题中推断出另一种可能性: - 你仍然希望结果是一个日期 - 但是您想“丢弃"天数、小时数等 - 只留下年/月的日期字段 SELECTDATEADD(MONTH, DATEDIFF(MONTH, 0, ), 0) AS [year_mon ..
发布时间:2021-12-02 15:05:59 数据库

插入更新触发器如何判断是插入还是更新

我需要在表 A 上编写一个插入、更新触发器,它将删除表 B 中的所有行,这些行的一列(比如 Desc)的值类似于在表 A 的列(比如 Col1)中插入/更新的值.我将如何编写它以便我可以处理更新和插入情况.我如何确定触发器是为更新还是插入执行的. 解决方案 触发器有特殊的 INSERTED 和 DELETED 表来跟踪“之前"和“之后"数据.所以你可以使用类似 IF EXISTS (SEL ..
发布时间:2021-12-02 15:05:34 数据库

CTE 和 SubQuery 的区别?

来自这篇文章如何在以下程序? 有两种版本的答案,一种使用 sub-query,另一种使用 CTE 来解决相同的问题. 那么,使用 CTE(通用表表达式) 比“子查询"有什么优势(因此,更可读strong> 查询实际上在做什么) 使用 CTE 而不是 sub-select 的唯一优点是我实际上可以命名子查询.当 CTE 用作简单(非递归)CTE 时,这两个 之间还有其他区别吗? ..
发布时间:2021-12-02 15:05:27 数据库

SQL Server 中的动态枢轴列

我在 SQL Server 中有一个名为 Property 的表,其中包含以下列: ID 名称 这个表中有一些属性,其他表中的某个对象应该赋予它价值. Id Object_Id Property_Id 值 我想制作一个如下所示的数据透视表,其中我在第一个表中声明的每个属性都有一列: Object_Id Property1 Property2 Property3 ... 我想知道如何 ..
发布时间:2021-12-02 15:04:06 数据库

SQL Server 检查区分大小写?

如何检查 SQL Server 中的数据库是否区分大小写?我之前一直在运行查询: SELECT CASE WHEN 'A' = 'a' THEN 'NOT CASE SENSITIVE' ELSE 'CASE SENSITIVE' END 但我正在寻找其他方法,因为这实际上给我带来了过去的问题. 编辑 - 更多信息:现有产品具有许多预先编写的存储过程.在存储过程中 @test != @T ..
发布时间:2021-12-02 15:02:34 数据库

无法截断表,因为它正被 FOREIGN KEY 约束引用?

使用MSSQL2005,如果先截断子表(FK关系主键的表),是否可以截断带有外键约束的表? 我知道我可以 使用不带where子句的DELETE,然后RESEED标识(或) 删除 FK,截断表,然后重新创建 FK. 我认为只要在父表之前截断子表,不执行上述任一选项就可以了,但是我收到此错误: 无法截断表“TableName",因为它正被外键约束引用. 解决方案 正确 ..
发布时间:2021-12-02 14:59:13 数据库

SQL Server:跨池连接的隔离级别泄漏

正如之前的堆栈溢出问题(TransactionScope 和连接池和SqlConnection 如何管理 IsolationLevel?),事务隔离级别在 SQL Server 和 ADO 的池连接之间泄漏.NET(还有 System.Transactions 和 EF,因为它们构建在 ADO.NET 之上). 这意味着,以下危险的事件序列可能发生在任何应用程序中: 发生需要显式事务以 ..
发布时间:2021-12-02 14:56:18 数据库

将动态 SQL 的结果放入 sql-server 的变量中

在存储过程中执行动态SQL如下: DECLARE @sqlCommand nvarchar(1000)声明@city varchar(75)SET @city = '伦敦'SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city'EXECUTE sp_executesql @sqlCommand, N'@city n ..
发布时间:2021-12-02 14:56:07 数据库

您如何查看 SSMS 中 ntext 或 nvarchar(max) 中的所有文本?

如何在 SQL Server Management Studio 中查看来自 NTEXT 或 NVARCHAR(max) 的所有文本?默认情况下,它似乎只返回前几百个字符(255?),但有时我只想快速查看整个字段,而无需编写程序来执行此操作.即使 SSMS 2012 仍然有这个问题:( 解决方案 选项 (查询结果/SQL Server/结果到网格页面) 要更改当前查询的选项,请单击“ ..
发布时间:2021-12-02 14:55:53 数据库

如何以编程方式更改标识列值?

我有一个 MS SQL 2005 数据库,其中有一个表 Test 和 ID 列.ID 是一个标识列. 我在这个表中有行,所有行都有相应的 ID 自动递增值. 现在我想像这样更改此表中的每个 ID: ID = ID + 1 但是当我这样做时,我得到一个错误: 无法更新身份列“ID". 我已经试过了: ALTER TABLE Test NOCHECK CONST ..
发布时间:2021-12-02 14:54:06 数据库

在 INNER JOIN 条件中使用“OR"是一个坏主意吗?

为了提高非常慢的查询的速度(在两个表上每个只有约 50,000 行的表上的几个分钟,如果重要的话,在 SQL Server 2008 上),我将问题缩小到OR 在我的内部连接中,如: SELECT mt.ID, mt.ParentID, ot.MasterIDFROM dbo.MainTable AS mtINNER JOIN dbo.OtherTable AS ot ON ot.ParentI ..
发布时间:2021-12-02 14:53:52 数据库

有没有办法在不使用游标的情况下遍历 TSQL 中的表变量?

假设我有以下简单的表变量: 声明@databases表(数据库 ID 整数,名称 varchar(15),服务器 varchar(15))-- 在@databases 中插入一堆行 如果我想遍历行,声明和使用游标是我唯一的选择吗?还有别的办法吗? 解决方案 首先你应该绝对确定你需要遍历每一行——基于集合的操作在我能想到的任何情况下都会执行得更快,并且通常会使用更简单的代码. 根据 ..
发布时间:2021-12-02 14:52:50 数据库