SQL Server常用的SQL语句
时间: 2024-08-07 17:01:39 浏览: 54
### SQL Server 常用 SQL 语句
#### 1. **声明与变量赋值**
在 SQL Server 中,可以通过 `DECLARE` 关键字声明变量:
```sql
DECLARE @myVariable INT;
SET @myVariable = 10;
SELECT @myVariable AS MyVariableValue;
```
这里我们声明了一个名为 `@myVariable` 的整数变量并赋予了它值 10。
#### 2. **定义 T-SQL 语句块**
使用 `BEGIN...END` 来包围一组 T-SQL 语句:
```sql
BEGIN TRANSACTION
INSERT INTO Employees (Name, Position)
VALUES ('John Doe', 'Manager');
COMMIT;
```
这个例子展示了一次简单的事务操作流程,用于插入员工信息。
#### 3. **条件语句 - IF/ELSE**
条件语句用于基于特定条件执行不同的逻辑路径:
```sql
IF EXISTS(SELECT * FROM Orders WHERE OrderID = 1)
BEGIN
UPDATE Orders SET Status = 'Delivered' WHERE OrderID = 1;
END
ELSE
BEGIN
PRINT 'Order not found.';
END;
```
这段代码检查是否存在某个订单 ID 的记录,如果存在,则更新订单状态;如果不存在则打印一条消息。
#### 4. **多重选择语句 - CASE**
CASE 语句允许基于多个条件来决定执行哪条逻辑路径:
```sql
SELECT
ProductID,
Price,
CASE
WHEN Price > 50 THEN 'Expensive'
ELSE 'Affordable'
END as PriceClassification
FROM Products;
```
这会根据价格对产品分类。
#### 5. **循环语句 - WHILE**
WHILE 循环允许重复执行一段代码直到满足停止条件:
```sql
DECLARE @i INT = 1;
WHILE (@i <= 5)
BEGIN
SELECT @i AS CurrentNumber;
SET @i = @i + 1;
END;
```
此示例显示数字 1 到 5 的序列。
#### 6. **条件转移语句 - GOTO**
虽然不推荐在现代 SQL 编程中使用,但可以作为示例:
```sql
DECLARE @counter INT = 1;
START_LOOP:
IF (@counter > 5)
GOTO END_LOOP;
SELECT @counter AS CounterValue;
SET @counter = @counter + 1;
GOTO START_LOOP;
END_LOOP:
```
这是一个简单的计数器程序,通过 `GOTO` 跳转实现循环终止。
#### 7. **退出语句 - BREAK 和 CONTINUE**
这些语句用于控制循环行为:
```sql
DECLARE @i INT = 1;
WHILE (@i <= 10)
BEGIN
IF (@i = 5)
BREAK; -- 立即退出循环
SET @i = @i + 1;
END;
SET @i = 1;
WHILE (@i <= 10)
BEGIN
IF (@i = 5)
CONTINUE; -- 继续下一个迭代
SET @i = @i + 1;
END;
```
在第一个例子中,当 `i` 等于 5 时循环中断;第二个例子则跳过等于 5 的迭代。
#### 8. **返回语句 - RETURN**
在存储过程或其他可返回结果的上下文中使用:
```sql
CREATE PROCEDURE GetEmployeeCount
AS
BEGIN
DECLARE @count INT;
SELECT @count = COUNT(*) FROM Employees;
RETURN @count;
END;
EXEC GetEmployeeCount;
```
这个存储过程返回员工总数。
#### 9. **等待语句 - WAITFOR**
用于在执行某些操作之前等待特定时间:
```sql
WAITFOR DELAY 'PT10S';
SELECT 'Operation completed after waiting 10 seconds.';
```
此处代码让操作暂停 10 秒钟后再继续。
---
**相关问题**:
1. 如何在 SQL Server 中创建索引?
- 使用 `CREATE INDEX` 语句创建索引。
2. 在 SQL Server 中如何删除索引?
- 使用 `DROP INDEX` 语句删除已存在的索引。
3. 在 SQL Server 存储过程中如何实现错误处理机制?
阅读全文