我在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
值?
答案 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 。
如果Val1
和Val2
是字符串字段,则必须按字符串值转义单引号,如下所示。
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,',')