1,连接数据库字符串
Data Source=192.168.1.249;Initial Catalog=bbx_uf_jiekou;User ID=sa;Password=123
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
2.读取库中所有表名
select name from sysobjects where xtype='u'
3,查询指定表的所有列名
select 列名=name from syscolumns where id=object_id(N'要查的表名')
4.1。表结构相同的表,且在同一数据库(如,table1,table2)
Sql :insert into table1 select * from table2 (完全复制)
insert into table1 select distinct * from table2(不复制重复纪录)
insert into table1 select top 5 * from table2 (前五条纪录)
2。不在同一数据库中(如,db1 table1,db2 table2)
sql: insert into db1..table1 select * from db2..table2 (完全复制)
insert into db1..table1 select distinct * from db2table2(不复制重复纪录)
insert into tdb1..able1 select top 5 * from db2table2 (前五条纪录)
5.表一和表二合并
表一:学号,语文,数学,外语
表二:学号,德,美,体
select ISNULL(a.学号,b.学号) as 学号1,* from 表一 a full join 表二 b on (a.学号=b.学号) order by 学号1
6.表备份
select * into sys_colmns_201300325bf from sys_colmns where条件
7.查询语句,多个个字段拼接为一个
select Cast(cCusCode as NvarChar)+'*'+Cast(cCusName as NvarChar) as cCusName from UFDATA_023_2012..customer
8.修改表中某列的数据类型
ALTER TABLE myTest ALTER COLUMN fName nvarchar(30) null
9.查询表和存储过程的结构
sp_help 表名
sp_helptext 存储过程名
10.union 去掉重复的 union all 合并在一起
11.判断表是否存在
1)if exists/note exists(select 1 from sysobjects where id=object_id('表名') and xtype='U')
begin
sql语句
end
2)if exists(select * from sysobjects where name='表名')
3)if(object_id('表名','u') is not null)--u:用户定义
12.sql数据库在日期上添加年或月或日
select DATEADD(YEAR,1,convert(datetime,date)) from ceshi_tb
select DATEADD(MONTH,1,convert(datetime,date)) from ceshi_tb
select DATEADD(DAY1,convert(datetime,date)) from ceshi_tb
13.sql数据库判断指定日期与到期日期相差多少天
select * from ceshi_tb where DATEDIFF(DAY,指定日期,到期日期)=1--查询出指定日期与到期日期相差一天的数据
14.查询出输入当前月份的所有数据
select * from ceshi_tb where month("date")=MONTH(GETDATE())--sql数据库
select * from ceshi_tb where month("date")=MONTH(now())--access数据库
15.SQL事物回滚
begin transaction--开始事物
CREATE TRIGGER T_INSERT_卷烟销售表
ON 卷烟销售表
FOR INSERT
AS
BEGIN TRANSACTION
--检查数据的合法性:销售的卷烟是否有库存,或者库存是否大于零
IF NOT EXISTS (
SELECT 库存数量
FROM 卷烟库存表
WHERE 卷烟品牌 IN (SELECT 卷烟品牌 FROM INSERTED)
)
BEGIN
--返回错误提示
RAISERROR(’错误!该卷烟不存在库存,不能销售。’,16,1)
--回滚事务
ROLLBACK
RETURN
END
commit transaction
加begin transaction可以开始一个事务,commit transaction可以提交这个事务,如果在此次执行中有错误,或想取消,可以使用RollbackTrans回滚事务,则在开始事务后的操作会被全部取消。
16.本周周一的日期:select
dateadd(week, datediff(week, 0, getdate()), 0);
17.某列(columns_name)内容转化为小写字符:lower(columns_name) ,转化为大写字符:upper(columns_name)
18.case when的应用
create proc proc_ceshi
@name varchar(100)
as
declare @type int
select @type=case when COUNT(name)>0 then 1 else 0 end from tb_ceshi where name=@name
if @type=1
begin
print '该人员存在'
end
else
begin
print '该人员不存在'
end
19.sql数据取整:
floor(100.9) = 100
floor 返回小于或等于所给数字表达式的最大整数。
ceiling(100.1) = 101
ceiling 返回大于或等于所给数字表达式的最小整数。
20.表明设为变量
create proc mysp_para
@tableName varchar(20)
as
declare @mm varchar(20)
set @mm='select * from '+@tableName
exec(@mm)--执行查询
21.获取字符串长度
len(name)
22.获取指定日期月份的第一天和最后一天
declare @date datetime
set @date='2014-05-10'
select CAST(DATEADD(day,1 - DAY(@Date), @Date) AS DATETIME) --指定日期月份的第一天日期
select DATEADD(day, -DAY(@Date), DATEADD(month, 1, CAST(@date AS DATETIME)))--指定日期月份的最后一天日期