• 1 
预览模式: 普通 | 列表
微软官方的Microsoft SQL Server R2 官方下载地址,作为收藏,可以直接通过IE下载SQL 2008 R2,激活需要注册码,网上可以找到:

http://care.dlservice.microsoft.com/download/D/8/0/D808E432-5AC6-4DA5-A087-21947AC4AC5F/1033/SQLFULL_x64_ENU.exe
标签: Mssql

MsSQL实现多字段模糊查询的简便方法

举例子说明,例如以下查询语句:

有些时候我们在使用MsSQL时需要查询多个字段,进行模糊查询,如果字段较多,我们写起SQL语句来会很麻烦,其实有一个简便的方法可以实现多字段的模糊查询:

[阅读全文]

标签: Mssql

关于T-SQL中什么是DML语句, DML语句是什么意思?

数据库专家都清楚什么是DML语句, DML语句就是数据库中在进行t-sql查询时候需要用到的DML(INSERT、UPDATE、DELETE).

标签: Mssql

SQL2005自动备份和自动删除7天前的备份

这里有一个自动SQL备份的代码, 它不是最好的, 但相信是比较实用的, 所以我在此收藏这段简单的代码, 大家可以将其放到存储过程里去:

SQL2005自动备份和自动删除7天前的备份

[阅读全文]

标签: Mssql

关于SQL SERVER 2000 2005临时表的问题

置地的项目中之前写过一个存储过程使用了全局临时表来解决仿全文查询检索时的速度(效率)问题。

全局临时表的生命周期一直持续到创建会话(不是创建级别)才终止。例如,如果你在存储过程中创建全局临时表,当超出存储过程的范围时,该表并不会被销毁。只有当创建会话终止后,Sql Server才会自动尝试删除该临时表,而其他会话中对该临时表提交的所有语句都将结束,并释放它们所保持的所有锁。

[阅读全文]

标签: Mssql

有些时候,我们需要在SQL Server 2000(MsSQL 2000)中进行日期比较,那么如何比较呢?

参考如下的例子进行比较即可:

DECLARE @D1 DATETIME
SELECT @D1 = '10  4 2009 12:00AM'
DECLARE @D2 DATETIME
SELECT @D2 = getdate()

SELECT CONVERT(char(11),@D1,120),CONVERT(char(11),@D2,120) WHERE @D1<@D2

当@D1小于@D2的时候,则输出@D1和@D2被格式化成yyyy-mm-dd的日期。

[阅读全文]

标签: Mssql

提问:

INSERT INTO TABLE1(Title,Created) SELECT Title,getdate() FROM  TABLE2 WHERE TABLE2.ID IN (1,2,3,4,5,6)
DECLARE @ID INT;  /* 用于得到Insert之后自动增长列的值 */
SELECT @ID=@@IDENTITY;


如上语句,我使用INSERT INTO...SELECT...方式批量插入数据,一共插入了六条数据,我想每次INSERT一条的时候取得@@IDENTITY并做一些操作,如上代码是执行完一段批量INSERT再去得到@@IDENTITY就只能获取最后一个INSERT的数据的自动增长列的ID号。

请问:我如何每次INSERT一条SELECT的数据时候取得@@IDENTITY并做一些操作

回答:

目前只能使用游标来操作,如下代码所示:

    /* copy stages */
    Declare @Title NVARCHAR(1000)
    Declare @Created DATETIME
    Declare @SortNumber INT
    Declare cur_Stages Cursor
    For  SELECT Title,getdate() AS Created,SortNumber FROM PR_Stage WHERE StageID IN (SELECT StageID FROM PR_WorkflowStage WHERE
WorkflowID=@WorkflowID)
    Open cur_Stages
    Fetch  From  cur_Stages  into  @Title,@Created,@SortNumber
    While  @@Fetch_Status=0
    Begin
        INSERT INTO PR_CloneStage(Title,Created,Creator,SortNumber) VALUES(@Title,@Created,@Creator,@SortNumber)
        DECLARE @SID INT;
        SELECT @SID=@@IDENTITY;
        /* 这里放置你需要进行的操作 */
        Fetch  From  cur_Stages into  @Title,@Created,@SortNumber
    End
    Close  cur_Stages
    Deallocate  cur_Stages

以上你Ms Sql2000的一个应用,只给出一个思路,sql2005和2008或许有更好的方法。

[阅读全文]

标签: Mssql

刚刚客户有个要求,举个例子:目前有三张表:

- CandidateBase : 学生信息表(主键CandidateID)
- ProgramBase : 科目信息表(CandidateID,ProgramID)
- CandidateProgram : 学生信息和科目信息关系表(主键ProgramID)

客户要求:给CandidateBase表中凡是Major字段为'MA-ARTE'的学生和ProgramBase表中NewProgramCode='MA-ARTE'的科目做一下关联。

分析:CandidateBase表中Major字段为'MA-ARTE'的学生可能为多个,ProgramBase表中NewProgramCode='MA-ARTE'的科目只有一个,那么我们就得首先得到那个科目ID(ProgramID),然后将CandidateBase表中Major字段为'MA-ARTE'的学生Select出来再将ProgramID一起Insert到关系表中,代码如下:

DECLARE @ProgramID INT
SELECT @ProgramID=ProgramID FROM [dbo].ProgramBase WHERE NewProgramCode='MA-ARTE'
INSERT INTO CandidateProgram(CandidateID,ProgramID) SELECT CandidateID,@ProgramID FROM [dbo].CandidateBase WHERE Major='MA-ARTE'

这样就能轻松实现客户给予的要求了。

[阅读全文]

标签: Mssql
  • 1