sql – 使用输出在merge语句中设置变量
发布时间:2021-05-22 09:29:49 所属栏目:MsSql教程 来源:网络整理
导读:我有一个合并声明,应该始终更新或插入单个记录.我想记住变量中该语句的ID.它看起来像这样: DECLARE @int intMERGE dbo.table AS AUSING (SELECT 'stringtomatch' AS string) AS B ON B.string= A.stringWHEN MATCHED THEN UPDATE SET somecolumn = 'somet
我有一个合并声明,应该始终更新或插入单个记录.我想记住变量中该语句的ID.它看起来像这样: DECLARE @int int MERGE dbo.table AS A USING (SELECT 'stringtomatch' AS string) AS B ON B.string= A.string WHEN MATCHED THEN UPDATE SET somecolumn = 'something' WHEN NOT MATCHED THEN INSERT VALUES ('stringtomatch','something') OUTPUT @int = inserted.ID; 现在这样做不会起作用,因为你不能用这种方式在输出子句中设置@int.我知道我可以创建一个temptable并在输出中使用INTO @temptable.但是因为我知道它总是单个记录,所以我想在INT变量中使用ID. 解决方法不,您必须将表变量与OUTPUT一起使用但是,你可以这样做…… ... WHEN MATCHED THEN UPDATE SET @int = ID,somecolumn = 'something' WHEN NOT MATCHED THEN INSERT VALUES ('stringtomatch','something'); SET @int = ISNULL(@int,SCOPE_IDENTITY()); 长期以来,“assign in UPDATE”一直是SQL Server的有效语法.见MERGE on MSDN.两人都这样说:
(编辑:永州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQL Server Table中XML列的操作代码
- sql-server – SSD上的SQL Server数据库 – 对于每个表的单
- sqlserver 文件数据库和关系数据库的对比
- sql-server – SQL Server需要分区数据,但只有标准版
- sql中identity自增的方法是什么?
- sql – Oracle Analytic函数 – 重置窗口子句
- sql-server – IntelliSense无法正常工作但已启用
- sql-server-2005 – 用户定义的函数输出进行Nhibernate过滤
- 在sql Server自定义一个用户定义星期代码
- sql-server – 外部应用vs左连接性能
站长推荐
- sqlserver得到当前日期的最大时间值
- sql-server-2000 – 如何从PHP 5.3及更高版本连接
- sql – 查找值并显示找到的值的数据库,表,列,主键
- SQL Server实现纵表转横表的方法是什么?
- sql-server – MS SQL Server中的自定义聚合函数
- join – Spark 2.0.0错误:PartitioningCollecti
- sql-server – SSD上的SQL Server数据库 – 对于
- 用户帐户 – 最佳实践 – 删除未使用的SQL帐户或
- SQL汇总报告,寻找优雅的解决方案
- @OrderBy导致java.lang.ClassCastException:ant
热点阅读