sql查询员工入职多少天_sql 查询四舍五入_sql怎么四舍五入(37)

电脑杂谈  发布时间:2017-02-03 23:10:24  来源:网络整理

Top

左连接右连接内连接全部上马,的确经典哦.

据说你写过上万行代码,大概这就是最经典的一段代码了吧.

Top

需求:

得到表中最小的未使用的ID号。

例:

table Name:Handle

HandleID

--------

1

2

5

6

7

--5 Records

执行结果须为3

解决:

SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID

FROMHandle

WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)

Top

两台SQL服务器上的一个数据表同步!

drop procedure dbSync

GO

/* 数据同步*/

CREATE PROCEDURE dbSync

@sTabelNamevarchar(255),--要同步的表名

@sKeyField varchar(255),--关键字段

@sServer varchar(255),--服务器名称或IP

@sUserName varchar(255),--登录到服务器的用户名,一般为sa

@sPassWord varchar(32)--用户登录到服务器的密码

AS

/*删除临时表*/

if exists (select * from dbo.sysobjects where id = object_id(N'tempTbl') and OECTPROPERTY(id, N'IsUserTable') = 1)

drop table tempTbl

declare @sql VARCHAR(2000)

/*把表@sTabelName[远程]的数据拷贝到临时表*/

set @sql='select * into tempTbl from '

set @sql=@sql + ' OPENDATASOURCE( '

set @sql=@sql + '''SQLOLEDB.1'','

set @sql=@sql + '''Persist Security Info=True;User;Password=' + @sPassWord

set @sql=@sql + ';Initial Catalog=toys;Data Source=' + @sServer

set @sql=@sql + ''').toys.dbo.'+@sTabelName

EXEC(@sql)

/* 把@sTabelName[本地]中的@sTabelName[远程]表中没有的数据插入到临时表中*/

set @sql='insert into tempTbl select * from '+@sTabelName+' where ['+@sKeyField+'] not in (select ['+@sKeyField+'] from tempTbl)'

EXEC(@sql)

/*清空表@sTabelName[本地]*/

set @sql='truncate table '+@sTabelName

EXEC(@sql)

--取得列名

declare @MySql VARCHAR(2000)

set @MySql=''

declare @title varchar(20)

DECLARE titles_cursor CURSOR FOR

SELECT name from syscolumns where id=object_id(@sTabelName)


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-30385-37.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...