做实验需要用Java与SQL Server连接,因为使用的 SQL 2008 Express Edition 是基于 Visual Studio2010 安装包安装时一起安装的,所以为了方便数据库的操作,首先下载了独立的 SQL Server Management Studio  安装包进行安装 。安装完毕后设置 SQL 癿登陆模式,因为 VS2010 自带的 SQL  Server 默认把 sa 账户禁用,这就意味着通过网络 TCP/IP 连接方式就不可用,所以要先把 sa 账户启用以方便以后的操作。

启动方式如下所示

  • step 1: 打开SSMS,用windows身份连接数据库,登录后,右键选择“属性”。

  • step 2: 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式。

  • step 3: 选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”。

  • step 4: 展开对象资料管理器中的“安全性”->“登录名”->“sa”,右键选择“属性”。

  • step 5: 左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码。

  • step 6: 选择“状态”,选中“启用”,点击“确定”。

  • step 7: 右击数据库选择“方面”。

  • step 8: 将“RemoteAccessEnabled”属性设为“True”,点“确定”(说明:这一项可能找不到,可以不用管他。)

  • step 9: 至此SSMS已设置完毕,先退出,重新启动数据库,再用sa登录,成功即表示sa帐户已经启用。


   以前用自己的方法成功开启过sa账号,但这次不知什么原因无法成功开启,于是,重新“新建登录名”,建了一个新的账号,其拥有的权限与sa账号一样即可使用。

   这时sa账号已经可以使用,还需要配置SSCM(SQL Server配置管理器)才能正常工作。

   首先确保下面的服务都开启:

0_1290345766NQ23.gif

   配置 TCP/IP 的属性"协议",具体操作看下图:

0_12903458962G6Q.gif

填定下面的信息:

0_1290345903k3Gz.gif

如图所示填写好IP地址,拉到页面最下面,填写端口。

0_1290345911h3g3.gif


接着配置客户端协议:

0_1290346086504w.gif


接着配置TCP/IP:

0_12903462123969.gif


重新启动数据库后就可以使用sa账号进行远程登录操作了。


可以用下面的代码测试一下能否正确连接上数据库:



[java] view plain copy
  1. import java.sql.*;  

  2. publicclass Test {  

  3. publicstaticvoid main(String[] srg) {  

  4.        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动

  5.        String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=Lib"; // 连接服务器和数据库                                                                              

  6.        String userName = "sa"; // 默认用户名

  7.        String userPwd = "123456"; // 安装 sql server 2008 时的密码

  8. @SuppressWarnings("unused")  

  9.        Connection dbConn;  

  10. try {  

  11.            Class.forName(driverName);  

  12.            dbConn = DriverManager.getConnection(dbURL, userName, userPwd);  

  13.            System.out.println("Connection Successful!");                                            

  14.        } catch (Exception e) {  

  15.            e.printStackTrace();  

  16.        }  

  17.    }  

  18. }  


posted @ 2013-06-14 10:22 软learn件 阅读(1) 评论(0) 编辑
问题提出:现在我有三张表,学生Student,课程Course,成绩SC


1.  学生表Student,主键是学号Sno

21164014-71323d821799458f924d8ad664e0c02d.jpg

2.  课程Course,主码是课程号Cno

21164048-ec3f29c8260b495f8a14950a0e61f1e4.jpg

3.  成绩SC,主码是Sno和Cno,Sno外键约束是Student的Sno,Cno的外键约束是Cno

21164119-8bf1f94d5e9b41bd9d4c93fcae6f6dc5.jpg


现在我需要对Student或者Course进行修改或删除,希望在SC表中能保持修改或删除同步,这就需要到级联操作!



方法一、SQL Server 2008 中手动设置“级联”

这个方法建议在建表时不要加入任何设置外键的代码,如果主码是两者或以上的就不适合使用


1.  打开“数据库关系图”,若未创建,则创建

2.  选中SC表,右击选中“关系”,展开“INSERT和UPDATE规范”中选择级联

3.  Student表 和 Course 表也要同样的设置


21170244-2bd2e9161d934f658b08bcb1b1788a32.jpg


方法二、建表时使用级联代码添加

复制代码
复制代码

1IF EXISTS (SELECT*FROM dbo.sysobjects WHERE ID =OBJECT_ID(N'SC') 2ANDOBJECTPROPERTY(ID, 'IsUserTable') =1) 3DROPTABLE SC 4Go 5CREATETABLE SC 6 (    Sno CHAR(10), 7     Cno CHAR(10), 8     Grade SMALLINTCHECK (Grade >=0AND Grade <=100) NOTNULL, 910PRIMARYKEY (Sno, Cno),11FOREIGNKEY (Sno) REFERENCES Student (Sno)12ONUPDATECASCADE13ONDELETECASCADE,14FOREIGNKEY (Cno) REFERENCES Course (Cno)15ONUPDATECASCADE16ONDELETECASCADE17 );

复制代码
复制代码