View Full Version : مبتدی: مشکل در تعریف پارامتر
سمانه علوی فر
شنبه 06 آذر 1389, 10:50 صبح
در تعریف پارامتر دچار مشکل شده ام
create procedure [dbo].[CreateEmptyDB]
@DbName nvarchar(max),
@DbPath nvarchar(max)
as
CREATE DATABASE @DbName ON PRIMARY
( NAME = @DbName, FILENAME =@DbPath + @dbname + '.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = @DbName, FILENAME = @DbPath + @dbname + '.ldf', SIZE = 1024KB , FILEGROWTH = 10%)
مشکل این تعریف پارامتر چیست؟
sam166
شنبه 06 آذر 1389, 10:53 صبح
پرانتز یادت رفته
بعد از نام پروسیجر یدونه " ) " پرانتز باز و بعد از پارامتر هات و قبل از As یه دونه " ( " پرانتز بسته بزار
سمانه علوی فر
شنبه 06 آذر 1389, 10:58 صبح
پرانتز یادت رفته
بعد از نام پروسیجر یدونه " ) " پرانتز باز و بعد از پارامتر هات و قبل از As یه دونه " ( " پرانتز بسته بزار
مشکلش این نیست
رو این خط ایراد می گیره
CREATE DATABASE @DbName ON PRIMARY
sam166
شنبه 06 آذر 1389, 11:01 صبح
create procedure [dbo].[CreateEmptyDB](
@DbName nvarchar(max),
@DbPath nvarchar(max)
)
as
CREATE DATABASE @DbName ON PRIMARY
( NAME = @DbName, FILENAME =@DbPath + @dbname + '.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = @DbName, FILENAME = @DbPath + @dbname + '.ldf', SIZE = 1024KB , FILEGROWTH = 10%)
سمانه علوی فر
شنبه 06 آذر 1389, 11:05 صبح
create procedure [dbo].[CreateEmptyDB](
@DbName nvarchar(max),
@DbPath nvarchar(max)
)
as
CREATE DATABASE @DbName ON PRIMARY
( NAME = @DbName, FILENAME =@DbPath + @dbname + '.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = @DbName, FILENAME = @DbPath + @dbname + '.ldf', SIZE = 1024KB , FILEGROWTH = 10%)
مهندس این قسمت ایراد می گیره
CREATE DATABASE @DbName ON PRIMARY
Reza_Yarahmadi
شنبه 06 آذر 1389, 11:09 صبح
شما به اين صورت نميتونيد با استفاده از پارامتر ديتابيس درست كنيد. بايد از Dynamic Query استفاده كنيد.
create procedure [dbo].[CreateEmptyDB]
@DbName nvarchar(max),
@DbPath nvarchar(max)
as
Declare @Str varchar(Max)
Set @Str = 'CREATE DATABASE ' + @DbName + ' ON PRIMARY
( NAME = ' + @DbName + ', FILENAME =' + @DbPath + @DbName + ' + .mdf , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = ' + @DbName + ', FILENAME = ' + @DbPath + @DbName + ' + .ldf, SIZE = 1024KB , FILEGROWTH = 10%)'
Exec Sp_executesql @Str
البته DbPath + @DbName@ نميدونم آدرس درستي رو ميسازه يا نه.
سمانه علوی فر
شنبه 06 آذر 1389, 11:27 صبح
use acc
exec [dbo].[CreateEmptyDB2] [('acc90') , ('c:\')]
استاد وقتی می خوام اجراش کنم یه ایراد می گیره بدین مضمون:
Msg 201, Level 16, State 4, Procedure CreateEmptyDB2, Line 0
Procedure or function 'CreateEmptyDB2' expects parameter '@DbPath', which was not supplied.
Reza_Yarahmadi
شنبه 06 آذر 1389, 12:06 عصر
SP رو بصورت زير بنويسيد
CREATE procedure [dbo].[CreateEmptyDB]
@DbName nvarchar(max),
@DbPath nvarchar(max)
AS
Declare @Str varchar(500)
EXEC( 'CREATE DATABASE ' + @DbName + '
ON
( NAME = ' + @DbName + ',
FILENAME = '''+ @DbPath + @DbName + '.mdf'',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = ' + @DbName + '_Log,
FILENAME = '''+ @DbPath + @DbName + '_Log.ldf'',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )')
بصورت زير هم اونو صدا بزنيد
EXEC CreateEmptyDB 'acc90','C:\'
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.