创建存储过程解决思路
创建存储过程
创建一个存储过程,并用T-SQL传参数给过程
这是我创建存储过程的句子,报错如下:
消息 156,级别 15,状态 1,过程 BackupFullDB,第 4 行
关键字 'DECLARE' 附近有语法错误。
消息 102,级别 15,状态 1,过程 BackupFullDB,第 12 行
',' 附近有语法错误。
消息 319,级别 15,状态 1,过程 BackupFullDB,第 14 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式或 xmlnamespaces 子句,那么前一个语句必须以分号结尾。
不知道是何处不对,请指教,谢谢!
附代码
------解决方案--------------------
创建一个存储过程,并用T-SQL传参数给过程
这是我创建存储过程的句子,报错如下:
消息 156,级别 15,状态 1,过程 BackupFullDB,第 4 行
关键字 'DECLARE' 附近有语法错误。
消息 102,级别 15,状态 1,过程 BackupFullDB,第 12 行
',' 附近有语法错误。
消息 319,级别 15,状态 1,过程 BackupFullDB,第 14 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式或 xmlnamespaces 子句,那么前一个语句必须以分号结尾。
不知道是何处不对,请指教,谢谢!
附代码
- SQL code
USE test GO CREATE 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++++ 后面的也是如此,自己改改吧