当前位置: 首页 > 面试题库 >

tsql-从select语句更新表

朱兴安
2023-03-14
问题内容

我有两张桌子。表A和表B。
TableA包含一个varbinary(max)列-名为[BinaryA] TableB包含一个包含每个varbinary卷的列(名为“
Volume”,类型为“ Long”)。

为了选择我查询的所有卷

SELECT ID, MyVolume = DATALENGTH([Binary])
FROM [VAULT].[TABLEA]

比,我想用它的体积更新tableB。

然后我写

update [TableB] 
set [VOLUME]  = ( SELECT MyVolume = DATALENGTH([Binary])
              FROM [VAULT].[TABLEA] ab
          WHERE id = ab.[Id])

我收到比

Cannot insert the value NULL into column 'Volume', table 'MySchema.Asset';
column does not allow nulls. UPDATE fails.

虽然我在运行时没有收到任何NULL

SELECT ID, MyVolume = DATALENGTH([Binary])
FROM [VAULT].[TABLEA]

问题答案:

尝试使用此查询:

UPDATE TableB 
SET TableB.[VOLUME] = DATALENGTH([T2.Binary])
FROM TableB
INNER JOIN [VAULT].[TABLEA] T2 ON TableB.TAL_ID = T2.TAL_ID

假设TableB和[VAULT]。[TABLEA]通过ID字段关联。



 类似资料:
  • 问题内容: 抱歉,标题不清楚。基本上,我试图从多个表中选择某些记录,然后为返回的记录更新某个列值。 T-SQL实施 甲骨文 我尝试在Teradata中执行与在Oracle中相同的操作,但是出现以下错误: 我在网上寻找解决方案,但没有运气。 问题答案: 您是否使用Teradata尝试了以下语法:

  • 问题内容: 我有这些表和值: 我想使用表1中的值及其各自的ID更新表2中的所有值。 有没有办法通过简单的SQL查询来做到这一点? 问题答案: 运行选择以确保它是您想要的 更新 另外,请考虑使用,以便在需要时可以将其回滚,但请在满意时再进行确认。

  • 问题内容: 所以我有一个旧数据库,正在迁移到新数据库。新版本的架构略有不同,但大多兼容。另外,我想从零开始重新编号所有表。 目前,我一直在使用编写的工具手动检索旧记录,将其插入新数据库,并更新旧数据库中的v2 ID字段以在新数据库中显示其对应的ID位置。 例如,我从MV5.Posts中选择并将其插入MV6.Posts。插入后,我在MV6.Posts中检索新行的ID,并在旧的MV5.Posts.MV

  • 问题内容: 我有2个表格,Products和ShoppingCart,我想根据ShoppingCart中指定的产品名称和数量来更新和减少Products表中产品的“数量”。我怎样才能做到这一点? 表:产品字段:产品名称,产品数量 表:购物车字段:ProductName,ProductQty 访问数据库 问题答案: 您应该有一个产品ID。然而: 您还应该在字段和表名中删除空格。

  • 问题内容: 我有两个TSQL EXEC语句 如何使两个EXEC同步?; 现在,第二个EXEC不会等待第一个EXECUTE完成。我尝试发出WaitFor Delay,它等待,但是第二个EXEC语句永不恢复。 谢谢。 更新,这里是更多信息: 首先执行将创建一个全局临时表,并从一个复杂的SELECT查询中填充它。 第二个EXEC是CLR存储过程,它基于最近创建并填充的Global Temp表中的变量来生

  • 在SQL中,语句用于从数据库中的表中查询或检索数据。 返回存储在表中的数据,返回的结果称为结果集。 语法 这里,表达式是要从中选择数据的表的字段名称。使用以下语法选择表中可用的所有字段: 假设表有以下行记录 - EMP_ID EMP_NAME CITY PHONE_NO SALARY 1 Kristen Chicago 9737287378 150000 2 Russell Austin 9262