將位列轉換爲整數
回答
嘗試使用CAST(columnName AS INT) AS IntValue
。
例如
SELECT columnName, CAST(columnName AS INT) AS IntValue
FROM table
OR可以使用CONVERT(INT, columnName) AS IntValue
。
UPDATE:如果您需要更改表的實際的元數據,那麼你首先需要刪除約束,然後改變列:
即
ALTER TABLE [Table] DROP CONSTRAINT [ConstraintName];
GO
ALTER TABLE [Table] ALTER COLUMN [ColumnName] INT;
然後重新創建任何約束你需要。
編輯的問題,請檢查我想ddl語句不是dml – 2012-07-26 11:49:28
我相信你可以通過只使用標準CAST()
命令提取位列作爲一個整數:
SELECT
CAS(Bit_Column AS int) AS Int_Column
FROM
YourTable
不過,我不知道我知道你想達到什麼樣的,也許你可以得到如果您提供了更多詳細信息(如表格的結構和約束條件),則可以獲得更好的答案。
我想改變表的結構,就像我有位字段的broleflag,它的默認值爲false現在我想要將該列的數據類型從位更改爲整數並將默認約束設置爲0 – 2012-07-26 11:50:33
現在更清晰了。在這種情況下,你可以看看?Esh發佈的答案,它應該做你正在尋找的東西。您只需將約束添加到ALTER命令。 – Diego 2012-07-26 11:54:32
我已經這樣做了,但與該字段相關的默認約束不允許我更改表列。 – 2012-07-26 12:07:08
如果您擔心更改列的數據類型,您可以使用ALTER查詢,如下所示。
ALTER TableName ALTER COLUMN ColumnName INT
否則,僅用於顯示的目的,你可以使用該CAST
或CONVERT
功能:
CAST(columnName AS INT) AS IntegerVal
CONVERT(int, columnName) AS IntValue
我已經使用這個改變腳本,但是當我改變這個表時,它說有一些與列相關的約束,不能改變.. – 2012-07-26 11:54:00
抱歉忘了提及你,如果你想改變列,列不應該包含任何值及其依賴關係表也 – Esh 2012-07-26 13:29:54
我們不能簡單地改變BIT列INT。所以我建議在表中創建新的整數列,然後使用CAST,用現有的位值更新新的整數列。然後最後可以從表中刪除BIT列。
您可以在2008R2版本中將位列更改爲至少int .. – 2012-07-26 12:24:08
您正在收到與默認約束相關的錯誤。因此,你必須改變列的數據類型之前丟棄約束......
試試這個基礎上找到此表中的所有約束(你只需要找到你的列適當的默認值),或使用SQL Server Management Studio(SSMS)爲表格生成腳本,這將有默認的約束定義。
select * from sys.all_objects where parent_object_id = object_id('<tablename>')
go
然後首先刪除約束,然後改變列並再次添加默認值。
alter table bittoint drop constraint DF__bittoint__col2__45D500F0
go
alter table bittoint alter column col2 int
go
alter table bittoint add constraint DF__bittoint__col2__45D500F0 default 0 for col2
go
最後我設法得到它的工作:
ALTER TABLE tblname DROP CONSTRAINT DF_tbl_tblname_tblcol
ALTER TABLE tblname ALTER COLUMN tblcol int not null
ALTER TABLE tblname WITH NOCHECK ADD CONSTRAINT [DF_tbl_tblname_tblcol] DEFAULT (0) FOR tblcol
我已經使用了上面的SQL語句與它的構造以及修改表列。
SELECT CONVERT(BIT, '假')爲Test1 SELECT CONVERT(BIT, '真')AS test2的
這是一個有用的 – Thaanuja 2015-04-10 10:47:02
- 1. 將5位整數轉換爲列
- 2. 將整數矩陣轉換爲位串?
- 3. C#將負整數轉換爲11位
- 4. 將整數轉換爲位表示
- 5. 將16位整數轉換爲0..100
- 6. 將整數轉換爲位表
- 7. 將列表轉換爲整數列表
- 8. 將16位整數轉換爲8位整數?
- 9. 將整數列表轉換爲塊
- 10. 將整數轉換爲單詞列表
- 11. 將整數轉換爲列表?
- 12. 將整數列轉換爲雙倍
- 13. Javascript。將MD5散列轉換爲整數
- 14. 將按位數據轉換爲多列
- 15. AVX將64位整數轉換爲64位浮點數
- 16. 將time_t轉換爲整數
- 17. 將bytearray轉換爲整數
- 18. 將BigDecimal轉換爲整數
- 19. 將NSString轉換爲整數
- 20. 將整數轉換爲titlesForSegmentAtIndex
- 21. 將DateTime轉換爲整數
- 22. 將varchar轉換爲整數
- 23. 將CGPDFPageRef轉換爲整數
- 24. 將整數指針轉換爲整數
- 25. 將非整數轉換爲整數python
- 26. 如何在C#中將16位'short'轉換爲32位整數?
- 27. 將32位指針轉換爲64位整數
- 28. 轉換爲32位整數24位整數(2S補碼)在C++
- 29. 如何將整數列表轉換爲整數?
- 30. 將長整數列表轉換爲整數
不要ü有任何默認的表列定義?爲了看到這個嘗試看到創建表結構 – praveen 2012-07-26 12:07:24
我假設你不能使用管理工作室,這是否正確? – Alex 2012-07-26 12:31:17