-1
这里我想将每个值的完整字符串插入到列中。为此我写了下面的脚本:将字符串的每个值插入到单个列中
例:
表:测试
create table test
(
cola varchar(10),
colb varchar(max),
colc varchar(10)
);
注意:现在我想通过调用存储过程来插入类似下面的记录:
cola colb colc
------------------
X1 M1 Z1
X1 M2 Z1
X1 M3 Z1
X1 M4 Z1
存储过程:sptest
CREATE PROC sptest
@cola varchar(10),
@colb varchar(max),
@colc varchar(10)
AS
Declare @dynamic varchar(max)
SET @dynamic =N'delete from test where colc='''+ @colc +'''';
PRINT(@dynamic)
EXEC(@dynamic)
SET @dynamic =N'insert into test values('''[email protected]+''','''[email protected]+''','''[email protected]+''')';
PRINT(@dynamic)
EXEC(@dynamic)
GO
注意:首先,我需要通过检查与colc
值删除记录,之后插入记录。
调用功能:
EXEC sptest
@cola = 'X1',
@colb = 'M1,M2,M3,M4',
@colc = 'Z1'
注:在调用函数如上图所示在上表中的值colb
必须插入。我没有得到如何在column colb
中插入每个值的完整字符串。
问题没有多大意义..... – 2014-12-02 13:18:23
@MitchWheat,请检查更新。 – MAK 2014-12-02 13:19:10
你为什么用这个动态?根据您发布的内容,根本不需要动态sql。这不仅是没有必要的,而且它打开了你的程序易受sql注入攻击。您还应始终在插入语句中为您的列命名。 – 2014-12-02 14:35:08