Một số vấn đề hay gặp khi làm việc với SQLSERVER (phần 1)

Ngày đưa:  07/08/2019 10:14:13 AM In bài
Trong quá trình sử dụng và làm việc với SQLSERVER (các phiên bản), chúng ta thường hay gặp một số khó khăn mà nhất thời chưa tìm ra cách nhanh chóng giải quyết chúng. Trong bài này, chúng ta cùng xem nội dung dưới đây nhé.

 1. Thực thi câu lệnh SQL

Create proc [dbo].ThuTucThucThi

 

(@sql nvarchar(3000))
As
set @ sql = @sql ……: các hàm nối chuỗi nếu có
exec (@sql)
 
2. Export cấu trúc và dữ liệu của database

 

  • Backup database trên server A dạng file (.BAK). Move file backup vào server B, tiến hành Restore. Trường hợp này cần đảm bảo phiên bản server A và server B phải tương thích để có thể restore vào server B.
  • Export từ Server A sang Server B. Trường hợp này hai server phải thấy nhau (phải truy xuất được về mạng và một số phân quyền tương ứng).
  • Genscript từ server A, trên server tạo database và chạy script vừa generate. Lưu ý là generate cả cấu trúc và dữ liệu các table

 

3.Thêm dữ liệu từ bảng có sẵn-Insert data from select table:
Bạn cần thêm dữ liệu vào table từ 1 table có sẵn hoặc từ kết quả các dòng dữ liệu trả về từ một câu lệnh Select, thực hiện như sau:
 
INSERT INTO table2 (column1, column2, column3, …)
SELECT column1, column2, column3, …
FROM table1
WHERE condition
 
4.Backup database trong hệ thống sử dụng cursor:
Bạn có danh sách các database trong hệ thống muốn backup chúng bằng lệnh bạn làm như sau:
set @pathx=’C:\Backup\’
DECLARE @name VARCHAR(50) — Tên Databse sẽ duyệt
DECLARE @path nVARCHAR(256) — đường dẫn file backup
DECLARE @fileName nVARCHAR(256) — tên file backup
DECLARE @fileDate nVARCHAR(20) — đường dẫn để đặt theo tên từng file backup
SET @path = @pathx — thu muc chua cac file duoc Backup
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) — ngay thang se backup
–Định nghĩa Cursor
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases WHERE name IN (‘dbname1,’dbname2’,’dbname3’,’…’)
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + ‘-‘ + @fileDate + ‘.BAK’
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
Bạn có thể tận dụng việc này để cài đặt job backup dữ liệ tự động trong SQLSERVER với những database mình muốn đặt lịch backup.
 
Còn tiếp phần 2.
 

 


Bản quyền ©2011 Trung tâm CNTT và TT Quảng Ngãi