SQL Server:无法在其他字符串的中间连接字符串

时间:2016-01-14 21:17:29

标签: sql sql-server sql-server-2008

在我的SQL Server存储过程中,我想这样做:

"hello xxx how are you"

其中xxx是变量的值

我试过这个

CREATE PROCEDURE insertToPinTable
    (@callerID VARCHAR (200),  
     @vAccount VARCHAR (200))
AS
BEGIN
     DECLARE @textEnglish VARCHAR
     textEnglish = CONCAT ( "hello", @vAccount)

     INSERT INTO pinData([CallerID], [body], [processed]) 
     VALUES (@callerID, @textEnglish, 0)
END

我收到错误

  

'textEnglish'

附近的语法不正确

似乎使用CONCAT不正确,请帮助我

(如果我可以将vAccount的值插入hello字,那么我可以将textEnglish的值插入字符串how are you

2 个答案:

答案 0 :(得分:4)

CREATE  PROCEDURE insertToPinTable
(
@callerID VARCHAR (200),  
@vAccount VARCHAR (200)    
)
AS
BEGIN

DECLARE @textEnglish VARCHAR(255) --missing length previously
set @textEnglish = 'hello'+ @vAccount --missing set keyword
INSERT INTO pinData([CallerID], [body], [processed]) VALUES (@callerID, @textEnglish, 0)

END

答案 1 :(得分:0)

如果您只想更改

中的字符串
"hello xxx how are you"

"hello Mr. Smith how are you"

您可能会考虑更换占位符:

将字符串定义为模板:

DECLARE @template VARCHAR(100)='hello {Name} how are you?';

然后使用

SELECT REPLACE(@template,'{Name}','Mr. Smith');