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)