`
javayestome
  • 浏览: 1046764 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

批量将一个库里的所有表里的char改成nchar类型

阅读更多

/*--将所有的表中,数值类型由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中char和nchar的区别.doc

    本文将深入探讨SQL Server中两种常见的字符类型:`CHAR`与`NCHAR`,通过历史背景和技术细节帮助读者理解这两种类型的特点及适用场景。 #### 二、ASCII编码及其局限性 在了解`CHAR`与`NCHAR`之前,我们首先回顾一下...

    mssql数据库 char vchar nchar nvchar异同

    本文将详细介绍`CHAR`、`VARCHAR`、`NCHAR`与`NVARCHAR`这四种字符类型之间的区别,帮助读者更好地理解它们的特点及适用场景。 #### 1. CHAR (Character) - **定义**:`CHAR`是一种固定长度的字符数据类型,其长度...

    Sqlserver中char,nchar,varchar与Nvarchar的区别分析

    - nchar同样是固定长度的,但它是Unicode字符数据类型,这意味着所有字符(包括英文和非英文)都占用2个字节。 - 由于使用Unicode编码,nchar可以存储多种语言字符,避免了字符集不兼容的问题。 - nchar(10)会...

    SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析

    char、nchar、varchar和nvarchar是四个常用的字符数据类型,它们各自有特定的用途和特点。 1. **char数据类型**: - char是固定长度的非Unicode字符数据类型,长度范围是1到8,000个字节。 - 存储空间会按照指定...

    char、varchar、nchar、nvarchar四种类型的区别

    ### char、varchar、nchar、nvarchar 四种类型的区别 在数据库设计中,选择合适的字段类型对于确保数据的准确性和提高查询效率至关重要。对于字符类型的字段,SQL Server 提供了 `char`、`varchar`、`nchar` 和 `...

    基于SQL Server中char,nchar,varchar,nvarchar的使用区别

    对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。 1.定长或变长 所谓定长就是长度固定,当要保存的数据长度不够时将...

    char的几种类型

    这意味着当你定义一个CHAR类型的字段时,必须指定一个固定的长度,例如`CHAR(20)`,表示该字段将始终占用20个字节的空间。如果实际存储的字符少于20个,那么剩余的部分将被填充空格以达到预设的长度。CHAR的最大长度...

    SQL2005中char nchar varchar nvarchar数据类型的区别和使用环境讲解

    例如,`DECLARE @a CHAR(6)`将创建一个长度为6的char变量。 2. **varchar**: - varchar是可变长度的非Unicode字符数据类型,长度同样为1到8,000个字节。 - 只会存储实际输入的字符数量,不进行填充,节省存储空间...

    SQLServer中char、varchar、nchar、nvarchar的区别

    - **存储空间**: 对于非Unicode类型(`char`、`varchar`),每个字符占用一个字节;而对于Unicode类型(`nchar`、`nvarchar`),每个字符占用两个字节。 - **固定长度 vs 变长**: `char`和`nchar`是固定长度的,无论...

    SQL数据类型nchar_char_varchar与nvarchar区别

    nchar_char_varchar与nvarchar有何区别?

    深入char、varchar、text和nchar、nvarchar、ntext的区别详解

    当然还有一部分人是根本就没弄清楚他们的区别,也就随便选一个。在这里我想对他们做个简单的分析,当然如果有不对的地方希望大家指教。 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char...

    MSSQL中所有字段类型的区别

    本文将详细介绍 MSSQL 中所有字段类型的区别。 一、char、varchar、text 和 nchar、nvarchar、ntext 的区别 char、varchar、text 是用于存储字符串类型的数据,而 nchar、nvarchar、ntext 是用于存储 Unicode 字符...

    sql中的smailint.datatime.nchar数据类型

    本文将详细介绍 `smallint`、`datetime` 和 `nchar` 这三种数据类型的特点及其应用场景。 #### 1. Smallint 数据类型 `smallint` 是 SQL 中一种整数数据类型,它占用的空间较小,非常适合存储一些小范围的整数值。...

    Java数据类型和MySql数据类型对应一览

    其中,VARCHAR 类型用于存储可变长度的字符串,NVARCHAR 类型用于存储 Unicode 字符串,CHAR 类型用于存储固定长度的字符串,NCHAR 类型用于存储 Unicode 字符串。 数字类型 在 Java 中,数字类型对应的是 java....

    Oracle 数据类型

    3、NCHAR和nvarchar2,NCHAR和CHAR区别在于NCHAR用来存储Unicode字符集类型,即双字节字符数据,CHAR是一个字节,而NCAHR是一个字符(两个字节),前者是CHAR(1)无法插入‘的’,后者是NCHAR(1)可以插入‘的’ ...

Global site tag (gtag.js) - Google Analytics