1.默认约束:定义该列未输入值时应该具有的默认值
SQL-------alter table 表名 add constraint dt_列名 default 默认值 for 列名
2.空值约束:定义该列是否允许为空值
SQL-------定义表的时候在对应列列数据类型后面添加not null
3.检查约束:又叫check约束,用来限制列的取值,它根据定义的逻辑表达式来强制域的完整性
SQL-------alter table 表名 add constraint ck_列名 check(逻辑表达式)
4.唯一约束:确保在非主键列不输入重复值
SQL-------alter table 表名 add constraint uq_列名 unique[clustered | nonclustered](列名)
5.外键约束:用于建立两个表数据之间连接的一列或多列
SQL-------alter table 表名 add constraint fk_列名 foreign key(列名) references 另一表名(列名)
6.主键约束:用来惟一地标识表中的每一行
SQL-------alter table 表名 add constraint pk_列名 primary key(列名)
新增列:alter table 表名 add 新列名 数据类型
删除列:alter table 表名 drop column 列名
删除约束:alter table 表名 drop constraint 约束名
修改列数据类型:alter table 表名 alter column 列名 新数据类型
修改列名需要调用存储过程sp_renam ......
using System.Data; // Use ADO.NET namespace
using System.Data.SqlClient;
SqlConnection thisConnection = new SqlConnection(
@"Data Source=GY; Initial Catalog=northwind;uid=sa;password=datadog"); //先建立连接
thisConnection.Open();//打开连接
SqlCommand thisCommand = thisConnection.CreateCommand();//直接指定conn的command
也可以这样 // SqlCommand cmd = new SqlCommand();
// cmd.Connection = thisConnection;
cmmand的sql命令
thisCommand.CommandText = "SELECT CustomerID ......
今天安装sql2000,老是出挂起的错误。所以找了找看见了这个方法。
原帖地址:http://hi.baidu.com/xpyi/blog/item/fa1fd3af254d32f2fbed500d.html
步骤是:
1)添加/删除程序中彻底删除sql server。
2)将没有删除的sql server目录也删除掉。
3)打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目,并删除它。这样就可以清除安装暂挂项目。
4)删除注册表中跟sql server相关的键。
其实估计只要做第3步就可以搞定,这样就可以清除安装暂挂项目。自己是先走了1,2,4,最后做了3才搞定。所以估计3才是最关键的。
如果上面还是不能得到解决
那么再试下下面的:
将以下两个从注册表中删除,一定可以解决SQL挂起问题:
一、开始\运行\输入regedit回车
+HKEY_LOCAL_MACHINE
+SYSTEM
+CurrentControlSet
+Control
+Session Manager下的FileRenameOperations删掉
二、+HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+Windows
+CurrentVersion
+Setup
+ExceptionComponents下的东西全部删掉如:
{077ACEC7-979C-40AB-9835-435BA1511E0D}
{30C7234B-6482-4A55-A ......
帮助里的,语法:
BEGIN TRY
{ sql_statement | statement_block }
END TRY
BEGIN CATCH
[ { sql_statement | statement_block } ]
END CATCH
[ ; ]
异常部分:
在 CATCH 块的作用域内,可以使用以下系统函数来获取导致 CATCH 块执行的错误消息:
ERROR_NUMBER() 返回错误号。
ERROR_SEVERITY() 返回严重性。
ERROR_STATE() 返回错误状态号。
ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
ERROR_LINE() 返回导致错误的例程中的行号。
ERROR_MESSAGE() 返回错误消息的完整文本。 该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。 ......
前几天做一个关于数据表优化的程序,由于数据库里面的字段的关系非常复杂,操作起来比较麻烦,刚用的时候还好,运行时间一长,生成的事务日志很大,占用了10几G,磁盘都快用完了。
到网上搜了一下,方法下面两种:
1.分离数据库,直接删除事务日志文件,再附加数据库,系统会为数据库创建一个新的日志文件
2.清除事务日志并收缩数据库
第一种方法我没用过,也不建议用,原因有两个:分离数据库会造成连接数据库的系统停止运行,如果是生产行业的话会造成停产;事务日志可作数据库故障恢复用,如果删除日志后系统新建出错,则数据库无法恢复。
第二种方法操作方式如下:
a)打开企业管理器,在你要操作的数据库节点右键-> 属性->事务日志
在事务日志文件列表里找出事务日志的文件名。(注意:这里的文件名是“文件名”列中的文件名,不是“位置”列中的实际文件名,这两个文件名可能不一样)
b)打开查询分析器,选择数据库,在查询对话框中输入
BACKU ......
首先我想谢谢园子的朋友们,是你们提醒我写内容有错误,记得曾经电子商务之数据存储流程(五)里面说到“选存储过程+传递参数用SqlParameter是因为,除非是ADO.NET有漏洞,那么就绝对不会发生SQL注入”。Keep Walking大哥也在关于防止sql注入的几种手段(二)中举出来一个例子说明我说的上句话是错误的。说实话当时我还是对SQL注入不是很了解,也没有遇到过SQL注入,也不是很关心它。但是我想安全的问题我们一定要非常注意,于是这些时候花了一些时间来学习了SQL注入。
什么是SQL注入
可能大家还不是对SQL注入这个概念不是很清楚,简单地说,SQL注入就是攻击者通过正常的WEB页面,把自己SQL代码传入到应用程序中,从而通过执行非程序员预期的SQL代码,达到窃取数据或破坏的目的。
当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入。SQL注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命 ......