小抄:数据库方面

本小抄仅供参考,不保证内容的正确与完整 ,大部分内容来自网络

 

获取数据库中某元素的信息 ,可用于检测 表 ,存储过程,触发器等是否存在

运行环境:SQLServer2000

 

select * from sysobjects where name='表名,存储过程名等' and xtype='类型名'

select * from syscolumns                         ----所有列的信息,id为表ID

select COL_LENGTH('sysobjects','name')        ----结果为256

select COL_LENGTH('sysobjects','xxx')        ----结果是NULL 可以用于判断 列 是否 存在


C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程

-------------------------------------------------------------------------------------------

 

在存储过程中执行变量保存的sql语句

运行环境:SQLServer2000


execute ('create table '+@TableName+' '+@table_sql)

-------------------------------------------------------------------------------------------

 

错误提示 因为该值的排序规则因排序规则冲突而未能解决

 

另外一个问题:无法解决 equal to 操作的排序规则冲突,也是同样原因


运行环境:SQLServer2000

select co1+co2 from xxx

 

表创建语句

create table xxx

(

[col1] [varchar] (9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [col2] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL

)

 

改为

create table xxx

(

[col1] [varchar] (9) COLLATE Chinese_PRC_CI_AS NULL ,
    [col2] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL

)

 

或者都改为 SQL_Latin1_General_CP1_CI_AS

 

无法解决 equal to 操作的排序规则冲突

WHERE   列名   collate   Chinese_PRC_CI_AS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值