TSQL/SP INSERT语句,带文本和;价值观
嗨 我在存储过程中有一个insert语句,它要求值数据是文本和变量/输入的组合。但是,我的SQL管理器在尝试编译此“camp”值时给出了一个错误 以下是当前存在的声明TSQL/SP INSERT语句,带文本和;价值观,sql,sql-server,sql-server-2005,tsql,stored-procedures,Sql,Sql Server,Sql Server 2005,Tsql,Stored Procedures,嗨 我在存储过程中有一个insert语句,它要求值数据是文本和变量/输入的组合。但是,我的SQL管理器在尝试编译此“camp”值时给出了一个错误 以下是当前存在的声明 BEGIN TRAN INSERT INTO TBL_DONATIONS ([donations_MemberID], [donation_Ref], [donations_Debit]) VALUES (@tmp_Id, "camp"+@tmp_Id+"/Key"+@tmp_IDENTITY, @tmp_Pledge
BEGIN TRAN
INSERT INTO TBL_DONATIONS ([donations_MemberID], [donation_Ref], [donations_Debit]) VALUES (@tmp_Id, "camp"+@tmp_Id+"/Key"+@tmp_IDENTITY, @tmp_Pledge)
COMMIT
我想这可能是因为我使用了错误的格式来连接组成“camp”+@tmp_Id+“/Key”+@tmp_IDENTITY”的部分
欢迎任何帮助
谢谢 在将值粘贴到values子句或将其更改为INSERT into。。。选择查询后者将更容易
编辑:并使用单引号,而不是双引号。我认为您必须使用“而不是” 编辑:如果要为值“”编辑,则必须
SET QUOTED_IDENTIFIER OFF
使用单引号“不”您得到的确切错误是什么 如果没有进一步的信息,您可能需要强制转换以下变量,因为您使用的命名约定会使我相信它们是整数,并且您正在用字符串将它们连接起来:
- @tmp_Id
- @tmp_标识
“camp”+CAST(@tmp\u Id为varchar)+“/Key”+CAST(@tmp\u IDENTITY为varchar)不确定您的意思。请解释。谢谢。插入TBL\u捐款([捐款成员Id],[捐款参考],[捐款借方])选择@tmp_Id,'camp'+@tmp_Id++'/Key'+@tmp_IDENTITY,@tmp_designethanks作为额外的细节,但为什么它是选择而不是值?这只是另一种方式而已。在我注意到你使用双引号之前,我写过这篇文章,这解释了编辑。是的,它们确实是整数。我只是假设/希望它们会隐式转换与c#/中的方式大致相同“+‘of single quotes’但是,在连接之前,您需要将数字变量转换为字符串,就像@Yoav所说的那样。默认通过SQL Server Management StudioI我假设您已将QUOTED_标识符设置为OFF,是的,它是有效的。但是,当我打开新选项卡时,相同的命令将失败,即使剪切/粘贴实际运行的代码。奇怪?为什么你会问一个关于错误的问题,但不包括实际的错误消息?