本来写成
alter table 表 alter column price nvarchar(20)
可能是因为前面已经有很多数据了,sql server提示:
不允许从数据类型 money 到数据类型 nvarchar 的隐性转换。请使用 CONVERT 函数来运行此查询。
怎么写?
alter table 表 alter column price nvarchar(20)
可能是因为前面已经有很多数据了,sql server提示:
不允许从数据类型 money 到数据类型 nvarchar 的隐性转换。请使用 CONVERT 函数来运行此查询。
怎么写?
truncate table table
alter table alter column price nvarchar(20)
insert into table select * from #
drop table #
CREATE TABLE dbo.Tmp_t1
(
f1 int NULL,
f2 nvarchar(20) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.t1)
EXEC('INSERT INTO dbo.Tmp_t1 (f1, f2)
SELECT f1, CONVERT(nvarchar(20), f2) FROM dbo.t1 (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.t1
GO
EXECUTE sp_rename N'dbo.Tmp_t1', N't1', 'OBJECT'
GO
COMMIT
drop table t1
gocreate table t1(f1 int,f2 money)
goinsert into t1 select 1,21.035
goif not object_id(N'Tmp_t1') is null
drop table Tmp_t1
go
CREATE TABLE dbo.Tmp_t1
(
f1 int NULL,
f2 nvarchar(20) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.t1)
EXEC('INSERT INTO dbo.Tmp_t1 (f1, f2)
SELECT f1, CONVERT(nvarchar(20), f2) FROM dbo.t1 (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.t1
GO
EXECUTE sp_rename N'dbo.Tmp_t1', N't1', 'OBJECT'
GO