首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

SQL Server 開發必備技巧集錦:排序、加密、分頁、元資料查詢、備份腳本

     編輯:PHP 相關知識

1. 中文筆畫排序

SELECT * FROM TableName ORDER BY CustomerName COLLATE Chinese_PRC_Stroke_ci_as;

2. 密碼加密與比對

-- 加密
SELECT PWDENCRYPT('plain_pwd');
-- 比對(回傳 1 表相同)
SELECT PWDCOMPARE('plain_pwd', encrypted_pwd);

3. 動態取得表欄位列表

DECLARE @list VARCHAR(1000), @sql NVARCHAR(1000);
SELECT @list = @list + ',' + c.name
FROM sysobjects o JOIN syscolumns c ON o.id = c.id
WHERE o.name = '表A';
SET @sql = 'SELECT ' + RIGHT(@list, LEN(@list)-1) + ' FROM 表A';
EXEC (@sql);

4. 查看磁碟分區可用空間

EXEC master..xp_fixeddrives;

5. 快速比較兩表資料是否相同

IF (SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM A) =
   (SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM B)
    PRINT '相等' ELSE PRINT '不相等';

6. 批次殺掉 Profiler/事件探查器進程

DECLARE hcforeach CURSOR GLOBAL FOR
SELECT 'KILL ' + RTRIM(spid) FROM master.dbo.sysprocesses
WHERE program_name IN ('SQL Profiler', N'SQL 事件探查器');
EXEC sp_msforeach_worker '?';

7. 分頁查詢模板(需主鍵 ID)

-- 前 N 筆
SELECT TOP N * FROM 表;
-- N 到 M 筆
SELECT TOP M-N * FROM 表 WHERE ID IN (SELECT TOP M ID FROM 表) ORDER BY ID DESC;
-- 最後 N 筆
SELECT TOP N * FROM 表 ORDER BY ID DESC;

8. 重命名資料庫

EXEC sp_renamedb 'old_name', 'new_name';

9-13. 常用元資料查詢

  • 所有用戶表:SELECT name FROM sysobjects WHERE xtype='U' AND status>=0
  • 表欄位:SELECT name FROM syscolumns WHERE id=OBJECT_ID('表名')
  • 相關視圖/SP/函數:SELECT a.* FROM sysobjects a, syscomments b WHERE a.id=b.id AND b.text LIKE '%表名%'
  • 所有預存程序:SELECT name FROM sysobjects WHERE xtype='P'
  • 用戶建立的資料庫:SELECT name FROM master..sysdatabases WHERE sid != 0x01
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved