sqlserver資料庫欄位為空格的問題

2021-09-22 01:46:13 字數 626 閱讀 8603

今天查問題遇到sqlserver資料庫中一張表裡本來插入的資料為空但是變成了空格的問題。

剛開始考慮是因為程式邏輯有問題,檢查了**後沒有異常,總共有a,b,c三個字段,都是同樣的邏輯。a就是空格,b,c是空

開始從資料庫方面下手查問題,首先檢視空格在字段中的位置

因為sqlserver在編譯sql語句時會自動將a='',和a=' '編譯為同樣的'',會自動去掉前置空格

因此使用a=' ' 去判斷空格是無效的

後面想要用len函式來判斷,但是len會去掉空格,datalength來判斷欄位裡的位元組數

兩者具體區別請參考

select charindex (' ', a),* from table where isactivated = 1 and a= ' '

charindex (' ', a)的作用是檢視空格在a中位置

發現都是字段中確實有空格。

這時突然想起來之前看看資料庫設計時,看到a是char型別,b和c都是varchar型別

才發現a設定了char的長度為2,資料庫再儲存時會用空格自動補齊長度,所以其實a是兩個空格

為SQLSERVER資料庫新增訪問使用者

首先,用windows或sa身份登入sqlserver,開啟安全性 登入名 右鍵新建登入名 在選擇頁 常規中,新建命為user b的登入名,選擇sqlserver身份驗證方式,設定密碼確認密碼,不勾選強制實施密碼策略 下一步選擇使用者對映。在選擇頁 使用者對映中,選擇要使用的資料庫勾選 這裡完成後,...

查詢SQL Server資料庫所有表字段備註

select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,字段序號 a.colorder,欄位名 a.name,字段說明 isnull g...

資料庫字段

mysql char size 字長字元,0 255位元組 varchar size 變長字元,0 255位元組 date 日期資料,格式為yyyy mm dd hh mm ss datetime 日期資料,比date更確切,包含分秒 int整形資料 double s,p 數字型,可存放實型和整形,...