A. sql Server同一個表中,一個欄位是另兩個欄位的和,要修改這兩個欄位的數據類型,不讓修改怎麼弄求高手
CREATE TABLE Tmp(ID INT IDENTITY PRIMARY KEY,Col1 int,Col2 int)
GO
ALTER TABLE Tmp ADD TotalCol AS Col1+Col2 --新增欄位 ,用計算列就行了
如合並的欄位是字元時,計算列轉為字元再加減
B. SQL數據類型改變
不能直接改,會丟失數據
可以用cast(欄位名 AS 新數據類型)
convert(新數據類型, 欄位名)
來進行數據轉換
C. SQL2008無法改變列的數據類型
增加一列 X 類型 bigint ,X賦值ID ,刪除ID,修改列名X為ID
D. SQL如何用語句更改欄位的數據類型
SQL如何用語句更改欄位可以用以下語句可以實現:
altertable表名altercolumn欄位名變更後的欄位類型。
注意:
但若是關鍵欄位,帶有主鍵,並且欄位類型為用戶自定義類型,具有默認值的情況下,用上述語句會出現錯誤。
例如:
現假設表為TABLE1,關鍵欄位為FIELD1,主鍵為PK_FIELD1,關鍵欄位的數據類型為用戶自定義數據類型cha_field1,實際為CHAR(10),默認值為dbo.D_field1現要求將欄位類型改為varchar(20),默認值去除錯誤提示如下:
伺服器:消息5074,級別16,狀態1,行1
對象'D_field1'依賴於列'field1'。
伺服器:消息5074,級別16,狀態1,行1
對象'PK_field1'依賴於列'field1'。
伺服器:消息4922,級別16,狀態1,行1
ALTERTABLEALTERCOLUMNfield1失敗,因為有一個或多個對象訪問此列。
E. SQL server 2008為什麼表保存之後就不可以修改數據類型
如果要去掉此提示,打開SQL 2008 在最上面 工具-〉選項-〉左側有個 設計器-〉表設計器和資料庫設計器 - 阻止保存要求重新創建表的更改(右側) 把鉤去掉就可以了。
F. SQL中如何改變一列的數據類型
你可以使用
ALTER
TABLE
加
ALTER
COLUMN
來更改指定的列數據類型,如:
CREATE
TABLE
myTest
(fId
int,fName
nvarchar(20)
null)
創建一個表,名為:myTest,包含兩個欄位。如果此時你想要更改
fName
列,那麼可以使用以下語句:
ALTER
TABLE
myTest
ALTER
COLUMN
fName
nvarchar(30)
null
這里要注意,如果指定的新的數據類型長度比原來的數據類型小,那麼會出現數據丟失的情況,所以千萬要注意,另外,不是所有的數據類型都可以更改,以下是SQL聯機叢書中提到的注意事項:
要更改的列不能是:
·數據類型為
text、image、ntext
或
timestamp
的列。
·表的
ROWGUIDCOL
列。
·計算列或用於計算列中的列。
·被復制列。
·用在索引中的列,除非該列數據類型是
varchar、nvarchar
或
varbinary,數據類型沒有更改,而且新列大小等於或者大於舊列大小。
·用在由
CREATE
STATISTICS
語句創建的統計中的列。首先用
DROP
STATISTICS
語句刪除統計。由查詢優化器自動生成的統計會由
ALTER
COLUMN
自動除去。
·用在
PRIMARY
KEY
或
[FOREIGN
KEY]
REFERENCES
約束中的列。
用在
CHECK
或
UNIQUE
約束中的列,除非用在
CHECK
或
UNIQUE
約束中的可變長度列的長度允許更改。
·有相關聯的默認值的列,除非在不更改數據類型的情況下允許更改列的長度、精度或小數位數。
G. SQL中數據類型為什麼我設置成IMAGE後不能修改為其他的數據類型
你資料庫裡面有數據吧?
image欄位里有數據,當你要選擇其它數據類型,資料庫沒辦法自動完成類型的轉換,因為image類型,會和其它的類型不匹配,所以轉換不了。
除非,先把image里的數據清空。
H. 在SQL中,是不是不好更改 列名 的 數據類型假如好改,應該怎麼弄
得看你表裡這個欄位是否有數據
比如你要把字元型改成數字型,如果有數據的話
比如現在存的是a,你要改成數字的話,系統會提示你要把數據清除才能改,因為a本身是字元
還有種,你要把某欄位由長改短,本來假如是varchar(3),當你要改成varchar(1)的話,也會提示你一些東西
修改欄位的基本語法
alter table 表名 alter 列名 屬性
比如你要把bookname改成varchar(40)
(40)