Menggunakan Parameter untuk Menentukan Data dan Laluan Fail Log Semasa Penciptaan Pangkalan Data
Apabila mencipta pangkalan data dalam SQL Server, anda mungkin mahu menentukan laluan di mana data dan fail log harus ditempatkan. Ini boleh berguna terutamanya untuk mengautomasikan penciptaan pangkalan data atau menggunakan ke persekitaran yang berbeza.
Untuk mencapainya, anda boleh menggunakan parameter dalam pernyataan CREATE DATABASE. Walau bagaimanapun, kod yang anda berikan:
DECLARE @DataFilePath AS NVARCHAR(MAX) SET @DataFilePath = N'C:\ProgramData\Gemcom\' DECLARE @LogFilePath AS NVARCHAR(MAX) SET @DataFilePath = N'C:\ProgramData\Gemcom\' USE master Go CREATE DATABASE TestDB ON PRIMARY ( NAME = N'TestDB_Data', FILENAME = @DataFilePath ) LOG ON ( NAME = N'TestDB_Log', FILENAME = @LogFilePath ) GO
tidak akan berfungsi seperti sedia ada. Ini kerana anda telah menetapkan nilai untuk @DataFilePath dua kali, yang mengatasi nilai yang dimaksudkan.
Sebaliknya, anda boleh menggunakan SQL dinamik untuk membina pernyataan CREATE DATABASE pada masa jalan. Begini cara anda boleh melakukannya:
DECLARE @sql AS NVARCHAR(MAX) SELECT @sql = 'CREATE DATABASE TestDB ON PRIMARY ( NAME = ''TestDB_Data'', FILENAME = ' + quotename(@DataFilePath) + ') LOG ON ( NAME = ''TestDB_Log'', FILENAME = ' + quotename(@LogFilePath) + ')' EXEC (@sql)
Pendekatan ini memastikan bahawa parameter dirujuk dengan betul dalam pernyataan SQL dinamik, membolehkan anda menentukan laluan fail yang diingini untuk pangkalan data anda.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Laluan Fail Data dan Log Apabila Mencipta Pangkalan Data Pelayan SQL Menggunakan Parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!