我有两个表,transforms
和design_fields
。 transforms
有一个名为transforms
的字段,design_fields
有一个名为transform
的字段。 design_fields
包含所有transform
行,其中一些是重复行。 transforms
(表格)transform
(列)是我尝试填充来自transform
的{{1}}值的内容。
我一直在使用以下查询手动完成其中一些操作。
获取不在design_fields
(表格)design_fields
(列)中的transform
transforms
列表:
transform
将select transform, COUNT(*) as trans_count
from design_fields
where transform not in (
select transform
from transforms
where transform is not null
)
group by transform
order by trans_count desc
design_field
插入transform
(表格)transforms
(列)+其他内容。
transform
虽然这种方法大部分都有效,但我需要执行600多行。这就是为什么我想使用动态查询将该列表中的所有行插入{{ 1}}表。
这是我到目前为止所做的(免责声明:我是动态查询的新手):
insert into transforms (field_id, transform_name, transform)
select field_id, logical_name, 'TRANSFORM NAME GOES HERE' as transform
from fields
where field_id in (
select field_id
from design_fields
where transform = 'TRANSFORM NAME GOES HERE'
)
此语句返回一条错误消息,指出它返回的值超过1。我理解为什么会这样,我只是不知道其他任何方法。
任何帮助,包括将来使用动态查询的指针都将非常感谢!
答案 0 :(得分:1)
如何使用EXEC语句,您可以将其参数设置为字符串。 exec语句将调用存储过程传递您想要的插入参数。例如:声明@SQL varchar(600);设置@SQL ='select * from yourTable'; EXEC(@SQL);