将位列转换为整数
回答
尝试使用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