-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