tsql相关内容

SQL MERGE 语句中的 UPDATE-no-op

我有一个包含一些持久数据的表.现在,当我查询它时,我还有一个非常复杂的 CTE,它计算结果所需的值,我需要将缺失的行插入到持久表中.最后,我想选择由 CTE 标识的所有行组成的结果,但如果它们已经在表中,则包含表中的数据,并且我需要是否刚刚插入行的信息. 简化后的工作方式如下(如果您想尝试,以下代码将作为普通查询运行): -- 设置测试数据,这将是持久化表DECLARE @target T ..
发布时间:2022-01-17 20:51:43 其他开发

我想使用 CASE 语句来更新 sql server 2005 中的一些记录

更新 dbo.TestStudents设置姓氏 =( 案件当(姓氏='AAA')然后'BBB'当(姓氏='CCC')然后'DDD'当(姓氏='EEE')然后'FFF'其他(姓氏)结尾 ) 该语句用于此目的,但 else 条件扫描表中的每条记录.有什么办法可以让未受影响的行保持原样? 解决方案 添加WHERE子句 更新 dbo.TestStudents设置姓氏 = 案例当姓氏 = 'AA ..
发布时间:2022-01-17 20:07:17 数据库

如何使用 ms sql 进行更新和排序

理想情况下我想这样做: UPDATE TOP (10) 消息 SET status=10 WHERE status=0 ORDER BY priority DESC; 英文:我想从数据库中获取前 10 条可用 (status=0) 消息并锁定它们 (status=10).优先级更高的消息应该首先得到. 不幸的是 MS SQL 不允许在更新中使用 order by 子句. 无论如何如 ..
发布时间:2022-01-17 20:06:42 数据库

如何更新 sql server 中的前 100 条记录

我想更新 SQL Server 中的前 100 条记录.我有一个表 T1 字段 F1 和 F2.T1 有 200 条记录.我想更新前 100 条记录中的 F1 字段.如何根据 SQL Server 中的 TOP 100 进行更新? 解决方案 注意,UPDATE语句需要括号: update top (100) table1 set field1 = 1 ..
发布时间:2022-01-17 20:05:49 数据库

完全匹配两个多对多表的记录集

我有用户、职位和许可证. 关系是: 用户可能拥有许多许可证 职位可能需要许多许可证 因此我可以轻松获得每个职位的许可要求以及每个用户的有效许可. 但我想知道匹配这两个集合的最佳方法是什么?按照逻辑,用户至少需要某个职位所需的那些许可证.可能有更多,但剩余的无关紧要. 我想获得用户和符合条件的职位的结果. PersonID PositionID1 1 ->用户 1 ..
发布时间:2022-01-16 23:56:01 其他开发

不应进行转换时 SQL 日期时间转换失败

我正在为客户修改现有查询,但遇到了一个有点莫名其妙的问题. 我们的客户端使用 SQL Server 2008 R2,并且该数据库为用户提供了通过使用 EAV 结构为其其中一个表指定自定义字段的能力.此结构中存储的所有值都是 varchar(255),其中一些字段用于存储日期.正在修改有问题的查询以使用其中两个字段并将它们(一个是开始,另一个是结束)与当前日期进行比较,以确定哪一行是“当前". ..
发布时间:2022-01-16 23:55:19 其他开发

使用 where 过滤 sql 查询结果丢失空值

我有一个连接超过 7 个表的复杂查询.加入后,我想过滤我的查询结果. 这是我观察到的. 当我执行 where 子句时 其中 X.Name != 'xxx'和 XY.Product != 1 我得到过滤结果,但 X.Name 和 XY.Product 的所有空值也消失了从我的结果.我想保留空值. 我也试过了: 和 X.Name != 'xxx'和 XY.Product != ..
发布时间:2022-01-16 23:54:37 数据库

将 IDENTITY 转换为数据类型 tinyint 的算术溢出错误

我正在 SQL Server 2008 R2 SP2 Express 数据库中设计表.我创建了带有 nvarchar 列的数据和 tinyint 列用于自动递增标识的表,假设行不会超过几行(这就是我选择 0-255 的原因tinyint).当我添加超过 255 行时,即使在我删除该表中的所有行并尝试添加一个新行之后,此错误也会永久发生.我正在使用 SQL Server Management Stu ..
发布时间:2022-01-16 23:53:48 数据库

创建只能看到一个数据库的用户,并且只能从中选择?

我们在 SQL 服务器上有几个数据库.我们想创建 1 个可以看到数据库“c"但看不到其余数据库的新用户. 该用户应该只能从该数据库中进行选择,不能进行其他选择. 我一直在谷歌搜索和搜索一段时间,我发现最接近的是拒绝查看任何数据库,然后让他们成为数据库所有者. 但我认为这不会限制他们选择,除非我有办法拒绝除了数据库所有者的选择之外的所有内容? 提前感谢您的帮助! 编辑:顺便 ..
发布时间:2022-01-16 23:52:59 数据库

sql查询参数为null不为null

我正在尝试执行 sql 查询并根据参数是否为空来动态构建 where 条件.我有这样的事情: SELECT tblOrder.ProdOrder, tblOrder.Customer FROM tblOrder@OrderId 不为空的情况然后哪里 tblOrder.OrderId = @OrderId别的结尾@OrderCustomer 不为空的情况然后和 tblOrder.OrderCust ..
发布时间:2022-01-16 23:47:48 其他开发

如何找到两个日期之间的持续时间

我想找出两个日期列之间的持续时间.为此,我使用 DATEDIFF 函数分别查找数字年份和月份,但希望两个结果都在单列中.下面给出了这两列. start_dt |end_dt2009 年 10 月 6 日 2011 年 7 月 15 日 需要的结果 持续时间(年.月)2.3 解决方案 我认为没有开箱即用的 API 可以提供您提到的格式的结果.您需要使用 DATEDIFF 函数来获得所需的最 ..
发布时间:2022-01-16 23:47:29 其他开发

将字符串转换为xml并插入Sql Server

我们有一个 SQL Server 2008 R2 数据库表,其中 XML 存储在 VARCHAR 数据类型的列中. 我现在必须获取 xml 的一些元素. 所以我想首先将存储为 VARCHAR 数据类型的 xml 转换为存储为 xml 数据类型的 xml. 例子: 表 A Id(int) , ProductXML (varchar(max)) 表 B Id(int), ..
发布时间:2022-01-16 23:44:20 数据库

将圆插入几何数据类型

我即将开始第一次使用几何或地理数据类型,因为我们的开发基线是 2008R2(!)我正在努力寻找如何存储一个圆圈的表示.我们目前有圆心的纬度和经度以及半径,例如:- [Lat] [float] NOT NULL,[长] [浮点] 非空,[半径] [十进制](9, 4) 非空, 有谁知道使用 STGeomFromText 方法存储它的等效方法,即使用哪种众所周知的文本 (WKT) 表示?我查看了圆 ..

SQL Server CACHES 是否查询结果?

当我运行查询时,SQL Server 会缓存结果吗? 因为:当我运行以下查询时: 选择 id来自 FooWHERE Foo.Name LIKE '%bar%' 查询第一次运行 40 秒. 但在第二次运行时,只需要几秒钟. 这是因为以某种方式缓存了执行计划,还是实际上缓存了数据,以便我可以在第二次运行时更快地检索它? 解决方案 SQL Server 不会缓存查询结果,但 ..
发布时间:2022-01-16 23:37:07 数据库

CTE 和 TEMP 表之间的主要区别是什么?

使用 CTE 的(通用表表达式)而不是使用 temp 表 有什么好处. 我在它们之间进行了性能测试,但我找不到它们之间的太大差异. 使用CTE'S有哪些优缺点? 解决方案 可能CTE和临时表最大的区别就是CTE的执行范围是single SELECT, INSERT、UPDATE、DELETE 或 CREATE VIEW 语句. 基本上你不能像使用临时表一样重用 CTE. ..