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測試的結果):
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 將截斷字符串或二進制數據
因為我得TableA是這樣生成的:
select
?????????? column1,
????????? ‘ ‘? column2
into TableA
from? TableC
?
具體的column2的字符類型好像是varchar,不知道系統為什么這樣判斷?length是1,所以update時就出錯了,就好像把一根20cm的筷子放到只有10cm的易拉罐中一樣,只好把筷子截斷10cm。
3.有時要查看表中所有列的數據類型,可以使用sp_help
可以執行的幾種方式:
???? sp_help
???? sp_help? 數據庫對象
??? sp_help 數據類型
我使用sp_help TableA
開始還想怎么nvarchar(255)的length是510啊?length是以字節為單位的。我使用的SQL Server是中文版的(應該說字符集是中文的比較準確),中文的一個字符等于兩個字節。
轉載于:https://www.cnblogs.com/cnmarkao/p/3687398.html
總結
以上是生活随笔為你收集整理的SQL Server 中update的小计的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: U3D的Collider
- 下一篇: 枸杞多少钱一斤啊?
