mysql语句转换为sqlserver2005语句

mysql语句转换为sqlserver2005语句,第1张

SQL Server 的语法如下:

ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }

指定如果已创建表中的行具有引用关系,并且被引用行已从父表中删除,则对这些行采取的 *** 作。默认值为 NO ACTION。

NO ACTION

数据库引擎将引发错误,并回滚对父表中行的删除 *** 作。

CASCADE

如果从父表中删除一行,则将从引用表中删除相应行。

SET NULL

如果父表中对应的行被删除,则组成外键的所有值都将设置为 NULL。若要执行此约束,外键列必须可为空值。

SET DEFAULT

如果父表中对应的行被删除,则组成外键的所有值都将设置为默认值。若要执行此约束,所有外键列都必须有默认定义。如果某个列可为空值,并且未设置显式的默认值,则将使用 NULL 作为该列的隐式默认值。

MySQL 里面的 on delete restrict

切换到 SQL Server , 可以切换为 ON DELETE NO ACTION

也可以不写,因为 默认值为 NO ACTION。

sql

方法/步骤

很多时候我们在生产数据库上面只能进行简单的查询,是不能增删查改的。但是又想使用真实的数据。

如果用plsql develop是可以实现将数据导出成insert语句的。但是导出之后是全部的列都会出现在insert语句里面。

3

遇到一些空值,日期之类的还要处理一下才行,而且有很多列是自己不需要的。

4

这个时候就需要用sql来构造insert语句了。他是比较自由和灵活的,可控制性比较强。

1、如果是Query query = sessioncreateQuery("")的话,试一下去掉前面的“select ”即createQuery方法内的条件直接是“from ”,有几个是可以用的,因为支持部分SQL。

不行的话就用下面的格式(排序必用):

select OBJECT(o) from A o where ob in(21,32)

select OBJECT(o) from A o order by ob ASC

2、Hibernate中实现模糊查询,可有以下三种方式:

第一种方式:QBC查询

String name = "", info = "";

if (sub != null && subgetSubname() != null) {

name = subgetSubname();

}

if (sub != null && subgetSubinfo() != null) {

info = subgetSubinfo();

}

Criteria cr = sessioncreateCriteria(Subjectclass);

cradd(Expressionlike("subname","%"+name+"%"));

cradd(Expressionlike("subinfo","%"+info+"%"));

第二种方式:HQL查询语句

String hql = "from Subject as s where ssubname like :name and ssubinfo like :info";

// 调用session的获得数据列表方法,传递HQL查询语句

Query query = sessioncreateQuery(hql);

querysetString("name","%"+name+"%");

querysetString("info","%"+info+"%");

Systemoutprintln(""+hql);

第三种方式:HQL查询语句(查询条件只能为英文或数字,汉字在传递到hibernate内部时出现乱码问题)

String hql = "from Subject as s where ssubname like '%"+name+"%' and ssubinfo like '%"+info+"%'";//调用session的获得数据列表方法,传递HQL查询语句

Query query = sessioncreateQuery(hql);

注:Subject为数据库表subject映射的类;它有相应的属性subname、subinfo及相应的get和set方法;sub为Subject的一个实例化对象。

不同的数据库、不同的程序设计语言,对时间戳的处理方法也各不相同

一、常用的数据库、程序设计语言中将时间戳转成普通时间的方法:

二、以SQL server为例

将时间戳:1500112590,转换成普通时间

select DATEADD(s,1500112590, '1970-01-01 00:00:00')

结果如图:

Int(number) : 转换为小于或等于接收参数的最大整数值,

CInt(number) :转换为表达式为Integer 型的数值,

CLng(number): 转换为表达式为Long 型的数值,

Fix(number) :去掉参数的小数部分并传回,

cCur(number) :转换为 Currency 子类型的数值

以上请选择使用。

以上就是关于mysql语句转换为sqlserver2005语句全部的内容,包括:mysql语句转换为sqlserver2005语句、如何将一张数据库表中的数据导出或转化成sql语句、sql语句怎么转化为hql语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9535900.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存