2014-08-28 67 views
0

我的问题:一旦我收到参数值,我想修改内容。TSQL替换我的存储过程字符串参数

E.g.一个字符串参数值是:FullName,Address,Category

我想改变FullNamel.FullNameCategoryc.Category并保持休息一样。

ALTER PROCEDURE [dbo].[TableA] @ColNames VARCHAR(1000) 
AS 
BEGIN 
    //I want to modify the contents of @ColNames here 
+0

请提供之前的示例,并且所希望的结果。还包括你到目前为止尝试过的。 – wdosanjos 2014-08-28 11:07:34

回答

1

这个怎么样?

select @ColNames = replace(@ColNames, 'FullName', 'l.FullName'); 
select @ColNames = replace(@ColNames, 'Category', 'c.Category'); 
+0

这正是他所要求的,但我敢打赌,他真正要求的是一个动态返回某些列的SP。 – 2014-08-28 11:17:12

0

是的,你可以这样做 - @ColNames是一个变量 - 你可以操纵它的内容。

ALTER PROCEDURE [dbo].[TableA] @ColNames VARCHAR(1000) 
AS 
BEGIN 
    -- I want to modify the contents of @ColNames here 
SET @ColNames = REPLACE(@ColNames, "FullName", "l.FullName") 
SET @ColNames = REPLACE(@ColNames, "Category", "c.Category") 
0
ALTER PROCEDURE [dbo].[TableA] @ColNames VARCHAR(1000) 
AS 
BEGIN 
    SET 
     @ColNames = REPLACE(@ColNames, 'FullName', 'l.FullName') 
     ; 
    SET 
     @ColNames = REPLACE(@ColNames, 'Category', 'c.Category') 
     ; 
0
declare 
@ColNames varchar(50) 


select @ColNames = replace(@ColNames, 'FullName', 'l.FullName'); 
select @ColNames = replace(@ColNames, 'Category', 'c.Category');