读书人

创建存储过程解决思路

发布时间: 2012-05-09 12:13:59 作者: rapoo

创建存储过程
创建一个存储过程,并用T-SQL传参数给过程
这是我创建存储过程的句子,报错如下:
消息 156,级别 15,状态 1,过程 BackupFullDB,第 4 行
关键字 'DECLARE' 附近有语法错误。
消息 102,级别 15,状态 1,过程 BackupFullDB,第 12 行
',' 附近有语法错误。
消息 319,级别 15,状态 1,过程 BackupFullDB,第 14 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式或 xmlnamespaces 子句,那么前一个语句必须以分号结尾。
不知道是何处不对,请指教,谢谢!

附代码

SQL code
USE testGOCREATE PROCEDURE BackupFullDB--BEGIN    DECLARE  @DBName        VARCHAR(100)    DECLARE  @ym            VARCHAR(6)    DECLARE  @ymd           VARCHAR(8)    DECLARE  @BackupFile    VARCHAR(100)    DECLARE  @BackName      VARCHAR(100)    DECLARE  @tmp           VARCHAR(100)    DECLARE  @backupSetId   as int    BACKUP DATABASE   @DBName, sysname, @DBName    TO     DISK     = @BackupFile    WITH        NOFORMAT,        NOINIT,        NAME = @BackName,        SKIP,        NOREWIND,        NOUNLOAD,        STATS = 10,        CHECKSUM    SELECT        @backupSetId = position FROM msdb..backupset        WHERE database_name = @DBName        AND   backup_set_id = (SELECT max(backup_set_id) FROM msdb..backupset WHERE database_name = @DBName)    IF @backupSetId IS NULL    BEGIN        raiserror(@tmp, 16, 1)    END    RESTORE VERIFYONLY FROM    DISK = @BackupFile WITH    FILE = @backupSetId,  NOUNLOAD,  NOREWIND


[解决办法]
SQL code
你这个传参数,需要动态凭借你的备份语句啊: set @sql='BACKUP DATABASE  '+'''' @DBName''''+', sysname, '+''''@DBName''''    +'TO     DISK     ='+'''' @BackupFile++++后面的也是如此,自己改改吧 

读书人网 >SQL Server

热点推荐