易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sqlserver

SQLServer数据集合的交、并、差集运算

SQLServer2005通过intersect,union,except和三个关键字对应交、并、差三种集合运算。
他们的对应关系可以参考下面图示
       相关测试实例如下:
use tempdb
go
if (object_id ('t1' ) is not null ) drop table t1
if (object_id ('t2' ) is not null ) drop table t2
go
create table t1 (a int )
insert into t1 select 1 union select 2 union select 3
create table t2 (a int )
insert into t2 select 3 union select 4 union select 5
go
select * from t1 union select * from t2
go
/* 求表并集
1
2
3
4
5*/
select * from t1 union all   select * from t2
go
/*求表并集不过滤重复
1
2
3
3
4
5*/
select * from t1 except select * from t2
go
/*求t1对t2的差集
1
2*/
select * from t1 intersect select * from t2
go
/*求t1对t2的交集
3*/
......

SQLserver字符串分割函数

SQLserver字符串分割函数
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。
CREATE function Get_StrArrayLength
(
  @str varchar(1024),  --要分割的字符串
  @split varchar(10)  --分隔符号
)
returns int
as
begin
  declare @location int
  declare @start int
  declare @length int
  set @str=ltrim(rtrim(@str))
  set @location=charindex(@split,@str)
  set @length=1
  while @location<>0
  begin
    set @start=@location+1
    set @location=charindex(@split,@str,@start)
    set @length=@length+1
  end
  return @length
end
调用示例:select dbo.Get_StrArrayLength('78,1,2,3',',')
返回值:4
二、按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
CREATE function Get_StrArrayStrOfIndex ......

pymssql访问sqlserver的一个bug


  对数据库进行多表操作,如果表与表之间存在依赖,那么显式的使用事务,可以保持对数据库操作的原子性。用Python访问SqlServer数据库,我使用pymssql库。今天在使用这个库的时候,发现一个问题。
问题大概是这样的:
  我有两张表,一张主表(ClassInfo),一张从表(Student),Student表通过外键ClassID与ClassInfo表进行关联。这两张表的主键都是自增型的int型字段。
  创建表的SQL语句如下:
CREATE TABLE ClassInfo(
ClassID INT IDENTITY(1, 1) PRIMARY KEY,
ClassName VARCHAR(20) NOT NULL
)
GO
CREATE TABLE Student(
StudentID INT IDENTITY(1, 1) PRIMARY KEY,
ClassID INT NOT NULL,
StudentName VARCHAR(20) NOT NULL,
FOREIGN KEY (ClassID) REFERENCES ClassInfo(ClassID)
)
GO
  在代码中,先创建一个班级,然后在班级中插入学生数据。如果这两个操作在一个事务中完成,一般情况下,按照pymssql提供的文档,我们会写这样的语句来实现:
import pymssql
conn = pymssql.connect(host = 'JGood\\SQLEXPRESS', database = "Study",
user = "sa", password = "sa")
cur = conn.cursor() ......

sqlserver 的prepare方法使用问题

1.如果先prepare 后添加参数,这样一部分数据类型可以不用设置其size大小,例如char
2.如果先添加参数再prepare,就必须设置参数的类型,大小,精度才能通过,比如char,varchar,decimal类型,而int,float有固定字节类型的数据类型则可不用设置大小。
3.关于SqlServer的timestamp类型:该类型为SqlServer的时间戳类型,创建表的时候可以没有列名,例如
   create table zh(a1 int,timestamp);
   在进行插入操作的时候不能插入timestamp列,它会自动插入一个二进制类型8个字节的数据,或者插入default。
   插入的值会发现是1900年的时间,这个据MSDN解释是这个时间不同于系统时间,而是为了区分该行数据有没有被更改,该行数据一旦被更改,则timestamp列的时间会自动更新。
   在数据库里该列是以binary存储,MSDN解释:可为空的该列相当于binary(8),不可为空的该列相当于varbianry(8)
   在取列数据的时候,需要将数据转换成datetime类型
   sql语句:利用cast或者convert ,convert(datetime,timestamp_c)
   程序里:利用转换方法Convert.ToDateTime ......

连接oracle,sqlserver中数据库的示例代码

一 在Oracle中连接数据库
public class Test1 {
 public static void main(String[] args) {
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   Connection conn = DriverManager.getConnection(
                           主机名 端口 SID      帐号    密码
     "jdbc:oracle:thin:@haha:1521:oracle", "hehe", "a");
   Statement stt = conn.createStatement();
   ResultSet rs = stt.executeQuery("select * from emp");
   while (rs.next()) {
    System.out.print(rs.getObject(2).toString());
    System.out.println("\t" + rs.getObject(3).toString());
   }
   rs.close();
   stt.close();
  &nb ......

连接oracle,sqlserver中数据库的示例代码

一 在Oracle中连接数据库
public class Test1 {
 public static void main(String[] args) {
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   Connection conn = DriverManager.getConnection(
                           主机名 端口 SID      帐号    密码
     "jdbc:oracle:thin:@haha:1521:oracle", "hehe", "a");
   Statement stt = conn.createStatement();
   ResultSet rs = stt.executeQuery("select * from emp");
   while (rs.next()) {
    System.out.print(rs.getObject(2).toString());
    System.out.println("\t" + rs.getObject(3).toString());
   }
   rs.close();
   stt.close();
  &nb ......

sqlserver链接服务器使用方法

EXEC sp_addlinkedsrvlogin @rmtsrvname = 'serverontest', @useself = 'false', @locallogin = 'sa', @rmtuser = 'sa', @rmtpassword = 'passwordofsa'
添加登录方式
以上两个语句中,@server为服务器的别名,@datasrc为要链接的目标数据库的连接串,@rmtsrvname为别名,@locallogin为本地登录的用户名,@rmtuser和@rmtpassword为要链接的目标数据库的登录用户名和密码
添加完链接服务器之后,可以通过select * from sys.linked_logins 和 select * from sys.servers来查看已经添加的链接服务器和登录角色
添加完链接服务器后,使用select * from 别名.库名.dbo.表名 来对其中的数据进行查询
删除链接服务器登录映射和链接服务器的方法:
  exec sp_droplinkedsrvlogin 'serverontest' ,'sa' 
  exec sp_dropserver 'serverontest'
例子:
EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=172.18.17.65;UID=sa;PWD=vip;'
--建立链接服务器登录映射
exec sp_addlinkedsrvlogin @rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='vip'
go
  --查询数据  &n ......
总记录数:341; 总页数:57; 每页6 条; 首页 上一页 [48] [49] [50] [51] 52 [53] [54] [55] [56] [57]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号