2009-09-11 22 views
0

HI,帶有文本和值的TSQL/SP INSERT語句

我在存儲過程中有一個插入語句,要求值數據是文本和變量/輸入的組合。然而,我的SQL管理器在嘗試編譯時會在這個'camp'值上發生錯誤。

以下是目前存在的聲明;

BEGIN TRAN 
    INSERT INTO TBL_DONATIONS ([donations_MemberID], [donation_Ref], [donations_Debit]) VALUES (@tmp_Id, "camp"[email protected]_Id+"/Key"[email protected]_IDENTITY, @tmp_Pledge) 
    COMMIT 

我想象使用錯誤的格式串接部分形成「‘營’+ @ tmp_Id +‘/鍵’+ @ tmp_IDENTITY」我的它可能的情況下???????

任何幫助極大的歡迎。

謝謝!

+0

,爲什麼你會問一個關於一個錯誤的問題,但不包括實際的錯誤信息? – 2009-09-11 14:02:34

回答

3

你的確切錯誤是什麼?

With出進一步的信息,你可能需要轉換下列變量,因爲你使用的命名規則將導致我相信他們是整數,而你用字符串連接它們:

  • @tmp_Id
  • @tmp_IDENTITY

試試這個: '陣營' + CAST(@tmp_Id爲varchar)+ '/鍵' + CAST(@tmp_IDENTITY爲varchar)

+0

確實是整數。我只是假設/希望他們會隱式轉換,就像在c#/.Net – Munklefish 2009-09-11 12:12:59

+2

+1中一樣,因爲他注意到他正在使用整數。 – 2009-09-11 13:06:04

1

您需要在將值插入VALUES子句 或將其更改爲INSERT INTO ... SELECT ...查詢之前準備值。 後者會更容易。

編輯:並使用單引號,而不是雙引號。

+0

不確定你的意思。請解釋。謝謝。 – Munklefish 2009-09-11 11:36:00

+0

INSERT INTO TBL_DONATIONS([donations_MemberID],[donation_Ref],[donations_Debit])SELECT @tmp_Id,'camp'+ @tmp_Id +'/ Key'+ @tmp_IDENTITY,@tmp_Pledge – 2009-09-11 11:53:34

+0

感謝您提供額外的細節,但爲什麼選擇SELECT而不是VALUES? – Munklefish 2009-09-11 12:09:51

3

我認爲你必須使用 '而不是 「」

編輯:如果你想 「」 爲價值觀,你必須

SET QUOTED_IDENTIFIER OFF 

SET QUOTED_IDENTIFIER

+0

這是有效的:_print「這是一個測試」+'單引號'_但是,您需要在連接之前將數字變量轉換爲字符串,就像@Yoav所說的那樣。 – 2009-09-11 14:01:56

+0

您的連接屬性是什麼? – 2009-09-11 14:19:33

+0

默認通過SQL Server管理工作室 – 2009-09-11 14:22:25

2

使用單引號' 不是「