首页 > 解决方案 > 具有给定参数的 SQL Server 存储过程插入查询

问题描述

首先,对不起我的英语,

我是存储过程的新手,所以我正在寻求帮助。

我有一个项目需要我为可配置的表名和列名创建一个 SP。我已经设法从 vb/vb.net 传递表名和列名值,现在我被困在 SP 上,下面是我的代码示例。

例子 :

frmTblname = table_a
frmClmnName = clm_A1, clm_A2, clm_A3, clm_A4, clm_A5,
toTblName = table_b,
toClmnName = clmn_b1,clmn_b2, clmn_b3, clmn_b4, clmn_b5

来自 vb/vb.netRslt = ConnectionExec.RunSP(con, "sp_configurable_insert", frmTblname, frmClmnName, toTblName, toClmnName)

如何将其添加到 SQL 插入查询中?

这是我的SP

CREATE procedure [dbo].[sp_configurable_insert] @fromTable nvarchar(50),@fromColumn nvarchar(4000),@toTable nvarchar(50),@toColumn nvarchar(4000)

我已经尝试过了,但似乎没有给出任何结果。

set @Query1 = 'insert into '+@toTable+'('+quotename(@toColumn)+')   
    select top 20 '+@fromColumn+' 
from '+@fromTable+'

任何人都可以帮助我吗?

谢谢 :)

标签: sql-servervb.netstored-procedures

解决方案


在查询末尾添加:

exec sp_executesql @Query1 

所以它应该看起来像:

set @Query1 = 'insert into '+@toTable+'('+quotename(@toColumn)+')   
    select top 20 '+@fromColumn+' 
from '+@fromTable+'

exec sp_executesql @Query1

所以请注意@Query1 不完整或包含错误,因为引号不平衡。


推荐阅读