【发布时间】:2014-12-02 13:16:39
【问题描述】:
在这里,我想将每个值的完整字符串插入一列。为此我编写了以下脚本:
示例:
表格:测试
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('''+@cola+''','''+@colb+''','''+@colc+''')';
PRINT(@dynamic)
EXEC(@dynamic)
GO
注意:首先我需要通过检查colc 值来删除记录,然后插入记录。
调用函数:
EXEC sptest
@cola = 'X1',
@colb = 'M1,M2,M3,M4',
@colc = 'Z1'
注意:在如上表所示的调用函数中,colb 值必须插入如上表所示。我不知道如何在column colb 中插入完整的字符串每个值。
【问题讨论】:
-
问题没有多大意义.....
-
@MitchWheat,请检查更新。
-
你为什么要使用动态?根据您发布的内容,根本不需要动态 sql。这不仅没有必要,而且会使您的程序容易受到 sql 注入的影响。您还应该始终在插入语句中命名您的列。
标签: sql-server sql-server-2008-r2