/*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程
--邹建 2004.02(引用请保留此信息)--*/
/*--调用示例:
exec p_set
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_set]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_set]
GO
create procedure p_set
as
declare tb cursor for
SELECT sql='alter table ['+d.name
+'] alter column ['+a.name+'] n'
+b.name+'('+cast(a.length*2 as varchar)+')'
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
where
b.name in('char','varchar')
and
not exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) --主键不能修改
order by d.name,a.name
declare @sql varchar(1000)
open tb
fetch next from tb into @sql
while @@fetch_status = 0
begin
exec(@sql)
fetch next from tb into @sql
end
close tb
deallocate tb
go
分享到:
相关推荐
本文将深入探讨SQL Server中两种常见的字符类型:`CHAR`与`NCHAR`,通过历史背景和技术细节帮助读者理解这两种类型的特点及适用场景。 #### 二、ASCII编码及其局限性 在了解`CHAR`与`NCHAR`之前,我们首先回顾一下...
本文将详细介绍`CHAR`、`VARCHAR`、`NCHAR`与`NVARCHAR`这四种字符类型之间的区别,帮助读者更好地理解它们的特点及适用场景。 #### 1. CHAR (Character) - **定义**:`CHAR`是一种固定长度的字符数据类型,其长度...
- nchar同样是固定长度的,但它是Unicode字符数据类型,这意味着所有字符(包括英文和非英文)都占用2个字节。 - 由于使用Unicode编码,nchar可以存储多种语言字符,避免了字符集不兼容的问题。 - nchar(10)会...
char、nchar、varchar和nvarchar是四个常用的字符数据类型,它们各自有特定的用途和特点。 1. **char数据类型**: - char是固定长度的非Unicode字符数据类型,长度范围是1到8,000个字节。 - 存储空间会按照指定...
### char、varchar、nchar、nvarchar 四种类型的区别 在数据库设计中,选择合适的字段类型对于确保数据的准确性和提高查询效率至关重要。对于字符类型的字段,SQL Server 提供了 `char`、`varchar`、`nchar` 和 `...
对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。 1.定长或变长 所谓定长就是长度固定,当要保存的数据长度不够时将...
这意味着当你定义一个CHAR类型的字段时,必须指定一个固定的长度,例如`CHAR(20)`,表示该字段将始终占用20个字节的空间。如果实际存储的字符少于20个,那么剩余的部分将被填充空格以达到预设的长度。CHAR的最大长度...
例如,`DECLARE @a CHAR(6)`将创建一个长度为6的char变量。 2. **varchar**: - varchar是可变长度的非Unicode字符数据类型,长度同样为1到8,000个字节。 - 只会存储实际输入的字符数量,不进行填充,节省存储空间...
- **存储空间**: 对于非Unicode类型(`char`、`varchar`),每个字符占用一个字节;而对于Unicode类型(`nchar`、`nvarchar`),每个字符占用两个字节。 - **固定长度 vs 变长**: `char`和`nchar`是固定长度的,无论...
nchar_char_varchar与nvarchar有何区别?
当然还有一部分人是根本就没弄清楚他们的区别,也就随便选一个。在这里我想对他们做个简单的分析,当然如果有不对的地方希望大家指教。 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char...
本文将详细介绍 MSSQL 中所有字段类型的区别。 一、char、varchar、text 和 nchar、nvarchar、ntext 的区别 char、varchar、text 是用于存储字符串类型的数据,而 nchar、nvarchar、ntext 是用于存储 Unicode 字符...
本文将详细介绍 `smallint`、`datetime` 和 `nchar` 这三种数据类型的特点及其应用场景。 #### 1. Smallint 数据类型 `smallint` 是 SQL 中一种整数数据类型,它占用的空间较小,非常适合存储一些小范围的整数值。...
其中,VARCHAR 类型用于存储可变长度的字符串,NVARCHAR 类型用于存储 Unicode 字符串,CHAR 类型用于存储固定长度的字符串,NCHAR 类型用于存储 Unicode 字符串。 数字类型 在 Java 中,数字类型对应的是 java....
3、NCHAR和nvarchar2,NCHAR和CHAR区别在于NCHAR用来存储Unicode字符集类型,即双字节字符数据,CHAR是一个字节,而NCAHR是一个字符(两个字节),前者是CHAR(1)无法插入‘的’,后者是NCHAR(1)可以插入‘的’ ...