sql server中單引號拼接字串(書寫錯誤會出現錯誤"浮點值 XXXX 超出了電腦表示範圍(8 個位元組)。“XX”附近有語法錯誤。")

來源:互聯網
上載者:User

標籤:

" ‘ "(單引號)的運用:在sql server中,兩個" ‘ "(單引號)在拼接字串的情況下運用,就是表示拼接上了一個" ‘ "單引號字串。

在此列舉出正確的寫法:

set @sql = ‘update #temp_monthKQ_Users set day‘+@curruntCount+‘=‘‘‘+@descTemp+‘‘‘ where user_id = ‘‘‘+@user_id+‘‘‘ ‘;

錯誤的寫法如下:

set @sql = ‘update #temp_monthKQ_Users set day‘+@curruntCount+‘=‘‘‘+@descTemp+‘‘‘ where user_id = ‘‘‘+@user_id+‘‘;
// 變數@user_id後面少了2個引號,因此把print(@sql) 之後的字串最右邊少了個" ‘ "(單引號),所以後面必須要加2個" ‘ "(單引號)才不會丟失拼接的" ‘ "單引號。

執行了@sql之後錯誤便會如所示:

倘若對於varchar類型的變數(這裡是@user_id)不加單引號如下所寫也會報錯(並且sql server在識別上會把@user_id當做浮點數,限制8個位元組,截斷成為8位字串的欄位):

set @sql = ‘update #temp_monthKQ_Users set day‘+@curruntCount+‘=‘‘‘+@descTemp+‘‘‘ where user_id = ‘+@user_id+;

如下:bc460011就是被截斷的字串, @user_id變數在此刻的值為:4028e5855335612201533573bc460011。

是正確寫法:

 

sql server中單引號拼接字串(書寫錯誤會出現錯誤"浮點值 XXXX 超出了電腦表示範圍(8 個位元組)。“XX”附近有語法錯誤。")

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.