您的位置:首页 > 数据库

一些常用的SQL语句

2009-07-21 18:11 302 查看
-----------------------------------------------------------------------------------------------------------
--系统属性查询
-- 查询系统中所有数据库名称:
select name from master.dbo.sysdatabases
go

select name as 数据库名称,crdate as 建库时间, fileName as 数据库存放地址 from master.dbo.sysdatabases
go
-----------------------------------------------------------------------------------------------------------
--查询系统中用户自己的所有的数据库名称:
select name from master.dbo.sysdatabases where dbID>6
go

-----------------------------------------------------------------------------------------------------------
--用什么查询语句或函数可以知道是否存在一个数据库?
if db_id('Northwind') is null
print '数据库不存在'
else 
print '数据库存在'

--或  --函数返回数据库的编号
select db_id('Northwind')

-----------------------------------------------------------------------------------------------------------
-- 使用某一数据库,如使用 系统中的 Northwind 数据库
use Northwind
go

-----------------------------------------------------------------------------------------------------------
--查出某一数据库中的所有表的名称:
select name from sysobjects where type='u'

-----------------------------------------------------------------------------------------------------------
--查出一个表的所有列名 如查 Employees表 中的所有字段名
select name from sysColumns where id=(select id from sysobjects where id = object_id('Employees'))

-----------------------------------------------------------------------------------------------------------
--查询表结构:
SELECT TOP 100 PERCENT c.colid AS 序号, o.name AS 表名, c.name AS 列名,
      t.name AS 类型, c.length AS 长度, c.isnullable AS 允许空,
      CAST(m.[value] AS Varchar(100)) AS 说明
FROM dbo.syscolumns c INNER JOIN
      dbo.sysobjects o ON o.id = c.id AND objectproperty(o.id, 'IsUserTable') = 1 AND
      o.name <> 'dtproperties' INNER JOIN
      dbo.systypes t ON t.xusertype = c.xusertype LEFT OUTER JOIN
      dbo.sysproperties m ON m.id = o.id AND m.smallid = c.colorder
ORDER BY o.name, c.colid

-----------------------------------------------------------------------------------------------------------
--创建数据库
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
   FILENAME = 'd:/database/saledat.mdf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
   FILENAME = 'd:/database/salelog.ldf',
   SIZE = 5MB,
   MAXSIZE = 25MB,
   FILEGROWTH = 5MB )
GO
-----------------------------------------------------------------------------------------------------------
--创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

--根据已有的表创建新表:
--A:
create table tab_new like tab_old (使用旧表创建新表)
--B:
create table tab_new as select col1,col2… from tab_old definition only

--删除表中所有行,仍保持表的完整性
truncate Employees

-- 完全删除表
drop table table_name

--或 先判断表是否存在,再伯删除处理
if exists(select * from sysobjects where name='要删除的表名' and xtype='u')
Drop table 表名
-----------------------------------------------------------------------------------------------------------
--复制表(只复制结构,源表名:a 新表名:b)    
select * into b from a where 1<>1

-----------------------------------------------------------------------------------------------------------
--拷贝表(拷贝数据,源表名:a 目标表名:b)    
insert into b(a, b, c) select d,e,f from b

--跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子: ..from b in '"&Server.MapPath(".")&"/data.mdb" &"' where..

-----------------------------------------------------------------------------------------------------------
--添加主键:
Alter table tabname add primary key(col)

--删除主键:
Alter table tabname drop primary key(col)

-----------------------------------------------------------------------------------------------------------
--添加一列 如向Nrothwind的数据库的employees中加一列为 column_name
alter table Northwind.dbo.employees add column_name char(2) null

--删除一列
ALTER TABLE Northwind.dbo.employees DROP COLUMN column_name

-----------------------------------------------------------------------------------------------------------
--创建索引:
create [unique] index idexname on tabname(col….)

--删除索引
drop index idexname

--注:索引是不可更改的,想更改必须删除重新建。

-----------------------------------------------------------------------------------------------------------
--创建视图:
create view view_employees as select * from employees

--从视图查询
select * from view_employees

--删除视图:
drop view view_employees

-----------------------------------------------------------------------------------------------------------
-- 显示表已有特征
sp_help Employees

-----------------------------------------------------------------------------------------------------------
--用sql语句实现数据库的 分离  附加  备份  恢复
   
sp_detach_db Sales ---分离 Sales 数据库

sp_attach_db Sales,'d:/database/saledat.mdf','d:/database/salelog.ldf' --附加数据库

backup database Sales to disk='d:/database/Sales' --备份

--备份sql server
-- 1 创建 备份数据的 device
EXEC sp_addumpdevice 'disk', 'myBack', 'D:/NrowindBack.dat'
-- 2 开始 备份
BACKUP DATABASE Northwind TO myBack

restore database Sales from disk='d:/database/Sales'  -- 恢复备份数据库
--説明:
--  在附加数据库时候 后面的两个参数一定要是绝对路径!否则报错!

-----------------------------------------------------------------------------------------------------------
--查看SQL语句的运行时间
set statistics profile on
set statistics io on
set statistics time on
go
select * from Employees
go
set statistics profile off
set statistics io off
set statistics time off

-----------------------------------------------------------------------------------------------------------
--WAITFOR 例 等待1 小时2 分零3 秒后才执行 SELECT 语句
waitfor delay '01:02:03' select * from employee

-----------------------------------------------------------------------------------------------------------
--例等到晚上11 点零8 分后才执行SELECT 语句
waitfor time '23:08:00' select * from employee

-----------------------------------------------------------------------------------------------------------
--几个简单常用的基本的sql语句
选择: select * from table1 where 范围
插入: insert into table1(field1,field2) values(value1,value2)
删除: delete from table1 where 范围
更新: update table1 set field1=value1 where 范围
查找: select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序: select * from table1 order by field1,field2 [desc]
总数: select count(*) as totalcount from table1
求和: select sum(field1) as sumvalue from table1
平均: select avg(field1) as avgvalue from table1
最大: select max(field1) as maxvalue from table1
最小: select min(field1) as minvalue from table1

-----------------------------------------------------------------------------------------------------------
--几个高级查询运算词
 UNION 运算符
--UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。-
--当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

EXCEPT 运算符
--EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。
--当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

INTERSECT 运算符
--INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
--当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
--注:使用运算词的几个查询结果行必须是一致的。

-----------------------------------------------------------------------------------------------------------
--使用外连接
left outer join:
--左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

right outer join:
--右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

full outer join:
--全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

--内联:
inner join on

-----------------------------------------------------------------------------------------------------------
--子查询
select a,b,c from tableA where a IN (select a from tableB )
--或者:
select a,b,c from tableA where a IN (1,2,3)

-----------------------------------------------------------------------------------------------------------
--between的用法,between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2

--两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

--四表联查问题:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

--选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名

,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

-----------------------------------------------------------------------------------------------------------
--------技巧
--1、1=1,1=2的使用,在SQL语句组合时用的较多
--“where 1=1” 是表示选择全部   “where 1=2”全部不选,

-----------------------------------------------------------------------------------------------------------
--转移数据库给新用户以已存在用户权限
exec sp_change_users_login 'update_one','newname','oldname'
go

--SQL语句 两种求和:
--第一个:一行记录中 如何求 字段1 字段2 字段3 字段N 的和?
select column1+column2+......+column3 as '合计' From Tablename
--第二个:一列记录中 如何求 本字段所有记录 的和?
Select sum(字段名) From TableName
--注:字段属性是数字(数值型、货币型都可)的时候才可以实现,如果有NULL值则被忽略。

-----------------------------------------------------------------------------------------------------------
--日期字段怎么只保存年月日,而不要时间?
CONVERT (varchar(10), Date, 112))

-----------------------------------------------------------------------------------------------------------
--查看数据库服务器IP地址
create table #ip(id int identity(1,1),re varchar(200))
declare @s varchar(1000)
set @s='ping '+left(@@servername,charindex('/',@@servername+'/')-1)+' -a -n 1 -l 1'
insert #ip(re) exec master..xp_cmdshell @s
select 服务器名=@@servername,IP地址=stuff(left(re,charindex(']',re)-1),1,charindex
('[',re),'')
from #ip
where id=2
drop table #ip

-----------------------------------------------------------------------------------------------------------
--随机取出10条数据
select top 10 * from Orders order by newid()

--随机选择记录
select newid()

-----------------------------------------------------------------------------------------------------------
--一条sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键

字段 order by a.排序字段

如:
select top 10 b.* from (select top 20 * from employees order by LastName desc) a,Employees b where b.EmployeeID =

a.EmployeeID order by a.LastName

-----------------------------------------------------------------------------------------------------------
--日程安排提前五分钟提醒
select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

-----------------------------------------------------------------------------------------------------------
-- 删除Stockname表的default约束
alter table table_name drop constraint Stockname_default

-----------------------------------------------------------------------------------------------------------
--  用一条SQL语句实现分页的效果   查询第X页,每页Y条记录
--select top y * from 表 where 主键 not in(select top (x-1)*y 主键 from 表)

--注:
-- 如果表中无主键,可以用临时表,加标识字段解决.这里的x,y可以用变量.
-- select id=identity(int,1,1),* into #tb from 表
-- select * from #tb where id between (x-1)*y and x*y-1
 
--如orders表中的第3页的 15 条记录
select top 15 * from orders where orderID not in(select top 30 orderID from orders order by orderID asc)

-----------------------------------------------------------------------------------------------------------
--选择从11到15的记录
select top 5 * from (select top 15 * from Orders order by OrderID asc)as temp_table order by orderID desc

-----------------------------------------------------------------------------------------------------------
--用什么的SQL语句来查的一个表中有相同的记录条数   浪费统计
select 相同条件的字段,count(*) from 表
group by 相同条件的字段
having count(*) >1

-----------------------------------------------------------------------------------------------------------
--转义:
USE pubs
GO
SELECT   Category =
      CASE type
         WHEN 'popular_comp' THEN 'Popular Computing'
         WHEN 'mod_cook' THEN 'Modern Cooking'
         WHEN 'business' THEN 'Business'
         WHEN 'psychology' THEN 'Psychology'
         WHEN 'trad_cook' THEN 'Traditional Cooking'
         ELSE 'Not yet categorized'
      END,
   CAST(title AS varchar(25)) AS 'Shortened Title',
   price AS Price,
   'Price Category' =
      CASE
         WHEN price IS NULL THEN 'Not yet priced'
         WHEN price < 10 THEN 'Very Reasonable Title'
         WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'
         ELSE 'Expensive book!'
      END
FROM titles
WHERE price IS NOT NULL
ORDER BY type, price
GO
-----------------------------------------------------------------------------------------------------------
--通配符
  %:匹配任意多个字符
  _(下划线):匹配任何单个的字符(占位符)
  []:指定范围内的所有字符,或者是一个OR条件

ESCAPE 'escape_character'
--允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。

--查询title表中的type字段中所有含 d_ 字符的所有信息
SELECT * FROM titles WHERE type LIKE  '%ds_%' ESCAPE 's' -- 's'表示特殊用法标志 S是任意取的,换成别的字符也行

--查询 tableName 表中的 ColumnA 字段里任意位置含有 5% 的信息
select * from tableName WHERE ColumnA LIKE '%5/%%' ESCAPE '/'  -- /  表示特殊用法标志 

-----------------------------------------------------------------------------------------------------------
HOST_NAME() --函数返回服务器端计算机的名称
select HOST_NAME()  --SAINDY

HOST_ID() --函数返回服务器端计算机的名称
select HOST_ID()  --1548

DB_ID(['database_name']) --函数返回数据库的编号
select DB_ID('Northwind')  --6

DB_NAME([database_id]) --函数返回数据库的名称
select DB_NAME(6) --Northwind

USER_ID (['user'])  --返回用户的数据库标识号。
select USER_ID ('dbo') --1
 
USER_NAME ([id])   --返回给定标识号的用户数据库用户名。
select USER_NAME (0)  --public
select USER_NAME (1)  --dbo
select USER_NAME (2)  --guest

-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
/***function(常用函数)***/
-----------------------------------------------------------------------------------------------------------
----统计函数-----
STDEV()--函数返回表达式中所有数据的标准差
STDEVP()--函数返回总体标准差
VAR()--函数返回表达式中所有值的统计变异数
VARP()--函数返回总体变异数

DISTINCT -- 只返回结果集合内唯一行的关键词
COUNT() -- 返回匹配查询的数据行总数数值的函数
AVG() -- 该函数返回指定列的平均值
SUM() --该函数把指定的列中的数字加起来
MIN() -- 该函数返回列中最小的非NULL值
MAX() --该函数返回列中的最大值
GROUP BY -- 按列汇集查询函数结果的子句  子句必须放在查询语句的结尾。
-- 如:查询表 employees ,并按 firstName 排序
SELECT * FROM employees ORDER BY firstName

-----------------------------------------------------------------------------------------------------------
--/***三角函数***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
COT(float_expression) --返回以弧度表示的角的余切

-----------------------------------------------------------------------------------------------------------
/***反三角函数***/
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
ATAN(float_expression1,float_expression2) --返回正切是float_expression1/float_expression2的以弧度表示的角
DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型
RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型
EXP(float_expression) --返回表达式的指数值
LOG(float_expression) --返回表达式的自然对数值
LOG10(float_expression)--返回表达式的以10 为底的对数值
SQRT(float_expression) --返回表达式的平方根

-----------------------------------------------------------------------------------------------------------
/***取近似值函数***/
CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型

FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型

ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据
--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型

ABS(numeric_expression)
--返回表达式的绝对值返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型

SIGN(numeric_expression) --测试参数的正负号返回0 零值  1 正数或 -1 负数返回的数据类型
--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
select SIGN(12) --1
select sign(-12) -- -1
select sign(0)  --0

PI() --返回值为π 即 3.1415926535897931
select pi()

RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数

-----------------------------------------------------------------------------------------------------------
----字符x串函数----
ASCII() --函数返回字符表达式最左端字符的ASCII 码值

CHAR() --函数用于将ASCII 码转换为字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值

LOWER() --函数把字符串全部转换为小写

UPPER() --函数把字符串全部转换为大写

STR() --函数把数值型数据转换为字符型数据

LTRIM() --函数把字符串头部的空格去掉

RTRIM() --函数把字符串尾部的空格去掉

LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串

CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置

SOUNDEX() --函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值

DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异
--0 两个SOUNDEX 函数返回值的第一个字符不同
--1 两个SOUNDEX 函数返回值的第一个字符相同
--2 两个SOUNDEX 函数返回值的第一二个字符相同
--3 两个SOUNDEX 函数返回值的第一二三个字符相同
--4 两个SOUNDEX 函数返回值完全相同

QUOTENAME() --函数返回被特定字符括起来的字符串
select quotename('abc', '{')  --{abc}
select quotename('abc','[')   --[abv]

REPLICATE() --函数返回一个重复character_expression 指定次数的字符串

select replicate('abc', 3) --abcabcabc
select replicate('abc',-2) --NULL

REVERSE() --函数将指定的字符串的字符排列顺序颠倒
select REVERSE('1234567890') --0987654321

REPLACE() --函数返回被替换了指定子串的字符串
select replace('abc123g', '123', 'def') --abcdefg

SPACE() --函数返回一个有指定长度的空白字符串

STUFF() --函数用另一子串替换字符串指定位置长度的子串

-----------------------------------------------------------------------------------------------------------
----数据类型转换函数----
--将某种数据类型的表达式显式转换为另一种数据类型。
CAST() --函数语法如下
CAST() (<expression> AS <data_ type>[ length ])

CONVERT() --函数语法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])
select cast(100+99 as char) --199
select convert(varchar(12), getdate()) --07  2 2009 1

-----------------------------------------------------------------------------------------------------------
----日期函数----
DAY() --函数返回date_expression 中的日期值

MONTH() --函数返回date_expression 中的月份值

YEAR() --函数返回date_expression 中的年份值

/*  以下中用到的 日期部分<datepart>
日期部分<datepart>  缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
Hour hh
minute mi, n
second ss, s
millisecond ms
*/

DATEADD(<datepart> ,<number> ,<date>)
--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期
select dateadd(year,2,getdate())  -- 两年后的日期

 

--将seal_info表里的print_time加上30 天

update seal_info set print_time=dateadd(day,30,print_time)

 

DATEDIFF(<datepart> ,<startdate> ,<enddate>)
--返回跨两个指定日期的日期和时间边界数
USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

DATENAME(<datepart> , <date>)
--函数 以字符串的形式 返回日期的指定部分
select dateName(year,getdate()) --字符串 2009

DATEPART(<datepart> , <date>) --函数 以整数值的形式 返回日期的指定部分
SELECT DATEPART(year, GETDATE()) as 'year' -- 整数 2009

--注:在此示例中,以数字表示日期。注意:SQL Server 将 0 解释为 01/01/1900。
SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)  -- 1  1  1990

GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间
select getdate() --2009-07-02 15:56:36.483

-----------------------------------------------------------------------------------------------------------
----系统函数----
APP_NAME() --函数返回当前执行的应用程序的名称
select APP_NAME()

COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值

COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值

COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名

DATALENGTH() --函数返回数据表达式的数据的实际长度
-----------------------------------------------------------------------------------------------------------
NULLIF(<expression1>, <expression2>)
--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值

-----------------------------------------------------------------------------------------------------------
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值

ISNULL(check_expression , replacement_value )--使用指定的替换值替换Null

ISDATE() --函数判断所给定的表达式是否为合理日期

-----------------------------------------------------------------------------------------------------------
--语 句 功 能

ORDER BY -- 按照指定列排序返回结果的子句
DISTINCT -- 只返回结果集合内唯一行的关键词
COUNT -- 返回匹配查询的数据行总数数值的函数
AVG -- 该函数返回指定列的平均值
SUM -- 该函数把指定的列中的数字加起来
MIN -- 该函数返回列中最小的非NULL值
MAX -- 该函数返回列中的最大值
GROUP BY -- 按列汇集查询函数结果的子句用ORDER BY对查询结果排序
ORDER BY --子句让数据库对查询结果排序,这样你就无须自己编写应用程序进行“手工”排序了。
--ORDER BY子句必须放在查询语句的结尾。
--其基本用法如下: SELECT * FROM Contacts ORDER BY first_name;

--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据

--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEMA --从数据库中删除一个模式
CREATE DOMAIN --创建一个数据值域
ALTER DOMAIN --改变域定义
DROP DOMAIN --从数据库中删除一个域--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限

--事务控制
COMMIT --结束当前事务
ROLLBACK --中止当前事务
SET TRANSACTION --定义当前事务数据访问特征

--程序化
SQLDECLARE  --为查询设定游标
EXPLAN  --为查询描述数据访问计划
OPEN --检索查询结果打开一个游标
FETCH --检索一行查询结果
CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询

---局部变量
declare @id char(10)
--
set @id = '10010001' select @id = '10010001'

---全局变量
---必须以@@开头

-----------------------------------------------------------------------------------------------------------
 要了解更多的信息,请参考Microsoft SQL Sever 的文档。
-----------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息