SQL Server 中update的小计
update中涉及到多個表的:
1.update TableA set a.ColumnC=b.ColumnC from TableA a inner join TableB b on a.ColumnD=b.ColumnD
這樣是不對的,報錯如下:
消息 4104,無法綁定由多個部分組成的標識符 “xxxx”
雖然前面的TableA和后面的TableA是同一個表,正確語法如下(我用的是SQL Server 2008測試的結(jié)果):
update TableA set ColumnC=b.ColumnC from TableA a inner join TableB b on a.ColumnD=b.ColumnD
2.update TableA set ColumnC=b.ColumnC from TableA a inner join TableB b on a.ColumnD=b.ColumnD
還是這個update語句,如下消息:
消息 8152 將截斷字符串或二進制數(shù)據(jù)
因為我得TableA是這樣生成的:
select
?????????? column1,
????????? ‘ ‘? column2
into TableA
from? TableC
?
具體的column2的字符類型好像是varchar,不知道系統(tǒng)為什么這樣判斷?length是1,所以update時就出錯了,就好像把一根20cm的筷子放到只有10cm的易拉罐中一樣,只好把筷子截斷10cm。
3.有時要查看表中所有列的數(shù)據(jù)類型,可以使用sp_help
可以執(zhí)行的幾種方式:
???? sp_help
???? sp_help? 數(shù)據(jù)庫對象
??? sp_help 數(shù)據(jù)類型
我使用sp_help TableA
開始還想怎么nvarchar(255)的length是510啊?length是以字節(jié)為單位的。我使用的SQL Server是中文版的(應(yīng)該說字符集是中文的比較準確),中文的一個字符等于兩個字節(jié)。
轉(zhuǎn)載于:https://www.cnblogs.com/cnmarkao/p/3687398.html
總結(jié)
以上是生活随笔為你收集整理的SQL Server 中update的小计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: U3D的Collider
- 下一篇: css制作对话框