sql-server-2008 - 使用 sp_executesql 之类的东西插入多行
问题描述
IF EXISTS (SELECT * FROM SYS.TYPES WHERE NAME = 'TestTableType')
DROP TYPE TestTableType
CREATE TYPE TestTableType AS TABLE (ID INT)
GO
DECLARE @T TestTableType
INSERT @T SELECT 6*7
INSERT @T SELECT 4*7
INSERT @T SELECT 8
EXEC sp_executesql N'SELECT * from @var', N'@var TestTableType READONLY', @t
GO
此代码返回:
42
28
8
如果允许,这就是我想做的:
EXEC sp_executesql N'INSERT @var SELECT * from @var', N'@var TestTableType READONLY', @t
那就是将 3 行重新插入 table variable @t
。但它必须是 READONLY 并且,当然,不会工作。
有谁知道 SQL Server 2008 Standard 的解决方法或替代选项?
谢谢帕德莱格
解决方案
不幸的是,根据这个没有办法用表值参数来做到这一点。
您可以考虑将值写入 ##temp 表,然后可以从下一条语句访问该表。
推荐阅读
- r - R barplot - 顶部的最高值被隐藏
- windows - 我似乎有两种不同的 Vim 环境。这是什么原因造成的?
- excel - 循环遍历多个 excel 文件并从每个文件下载数据的宏
- javascript - 如何将对象数组推入数组
- c# - SqlBulkCopy 失败,KeepIdentity 设置为 true
- python - Python没有正确响应用户输入
- apache-spark - Databricks 创建一个数据框列表及其大小
- excel - 如何从excel中的登录和注销计算总工作时间和休息时间?
- javascript - angularjs指令可以编译分配第二个指令的新元素吗
- kubernetes - 是否可以通过 https 入口访问 Kubernetes API?