sql 语句按功能分为3类:数据定义语句,数据操作语句,数据控制语句
一:数据定义语句:
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 --创建一个数据值域
ALT ......
use master
go
--切换master数据库
if exists(select 1 from sysdatabases where name = N'test')
--注意该同名数据库是否还要用到
begin
drop database test
end
go
create database test
on
primary
( name = 'testprimary', --主数据文件逻辑名
filename = 'D:\testprimary.mdf',--主数据文件存放路径
size = 1MB,--初始大小
maxsize = 10MB,--最大大小
filegrowth = 1MB--增长量
)
filegroup data --建立数据分组
(name='testdata',--次数据文件逻辑名
filename=‘D:\testdata.ndf',--次数据文件存储路径
size=1MB,--初始大小
maxsize=10MB,--最大大小
filegrowth=1MB--增长量
)
log on --日志文件
( name = 'test_ldf', --日志文件逻辑名
filename = 'D:\test.ldf',--日志文件存放路径
size = 1MB,--初始大小
maxsize = 10MB,--最大大小
filegrowth = 1MB--增长速度
)
go
......
今天刚开通这个小博,作为庆祝,把我以前空间中的一篇文章转过来。
希望对
问题:由于安装sql server 2000 sp4以后修改了服务器的名称导致SQL中保留的服务器名不正确。
解决方法:
1.select @@servername
查看返回值是否与现在机器名不一致(如果一致就是别的问题了)
2.exec sp_helpserver
查看应该有NAME与network_name不一致的情况,问题就在这里。
3.exec sp_dropserver '<1>'
<1>:就是'select @@servername'的返回值。
4.exec sp_addserver '<2>','local'
<2>:现在的计算机名
5.重新启动SQL SERVER服务
6.检查第1,2步的数据是否已经修改过来。
然后你就可以重新注册了。
对于提示xp_cmdshell存储过程没有找到的问题用下面语句解决。(前提是保证xplog70.dll在指定的目录下)
use master
go
sp_addextendedproc 'xp_cmdshell','C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll'
go
grant all on xp_cmdshell to public ......
use test
go
if exists table student is not null
else
drop table student
go
create table database_name.schema_name.table_name
(属性1 字符类型 约束,
属性2 字符类型 约束....
)
go
insert into table_name values ('属性1’,‘属性2’,......)
--插入数据
增加字段:alter talbe 表名 add 字段名 类型(宽度[,小数位] )
修改字段:alter table 表名 alter column 字段名 类型(宽度[,小数位] )
重命名字段:alter table 表名 rename column 字段名 TO 新字段名
删除字段:alter table 表名 drop column 字段名 ......
检测死锁
如果发生死锁了,我们怎么去检测具体发生死锁的是哪条SQL语句或存储过程?
这时我们可以使用以下存储过程来检测,就可以查出引起死锁的进程和SQL语句。SQL Server自带的系统存储过程sp_who和sp_lock也可以用来查找阻塞和死锁, 但没有这里介绍的方法好用。
use master
go
create procedure sp_who_lock
as
begin
declare @spid int,@bl int,
@intTransactionCountOnEntry int,
@intRowcount int,
@intCountProperties int,
@intCounter int
create table #tmp_lock_who (
id int identity(1,1),
spid smallint,
bl smallint)
IF @@ERROR<>0 RETURN @@ERROR
insert into #tmp_lock_who(spid,bl) select 0 ,blocked
&n ......
If the SQL data type is 'timestamp', we need to use ResultSet.getBytes() to retrieve its value. If the SQL data type is 'datetime', we can use ResultSet.getTimestamp(). It is said timestamp is interanlly saved as binary data.
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection
("jdbc:sqlserver://<url_address>;user=<user>;password=<password>;database=<database>");
Statement statement = conn.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = statement.executeQuery("...");
while (rs.next()) {
System.out.println(rs.getTimest ......