如何在sql server中设置插入字符串值?

时间:2014-02-14 12:49:39

标签: sql-server

我在sql server

中有这个查询
 DECLARE @SQL NVARCHAR(MAX),@X NVARCHAR(MAX)

 SET @X = 'val1,val2'

 SET @SQL = 'INSERT INTO [Persons] VALUES (' + @X + ')' 

 print (@SQL)
 exec (@SQL)

但我不知道如何以正确的方式设置@x值?

4 个答案:

答案 0 :(得分:0)

您必须DECLARE每个参数。

    DECLARE @SQL NVARCHAR(MAX)
    DECLARE @X NVARCHAR(MAX)

     SET @X = '''val1'',''val2'''

     SET @SQL = 'INSERT INTO [Persons] VALUES (' + @X + ')' 

     print (@SQL)
     exec (@SQL)

答案 1 :(得分:0)

您需要添加转义引号:

SET @X = '''val1'',''val2'''

使@X包含'val1','val2'

答案 2 :(得分:0)

这是 SQL Fiddle

如果Val1Val2是字符串字段,则必须按字符串值转义单引号,如下所示。

 DECLARE @SQL NVARCHAR(MAX)
 DECLARE @X NVARCHAR(MAX)

 SET @X = '''val1'',''val2'''

 SET @SQL = 'INSERT INTO [Persons] VALUES (' + @X + ')' 

 print (@SQL)
 exec (@SQL)

答案 3 :(得分:0)

从这个链接看到使用split功能, How do I split a string so I can access item x?

然后

Declare @ColNames VARCHAR(1000)='val1,val2'

INSERT INTO [Persons]
select item from dbo.SplitString(@ColNames,',')