首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

语法查错解决方案

2012-03-16 
语法查错CREATEPROCEDUREsp_backup@dbnamevarchar(20),--数据库名称@db_bakvarchar(20),--备份设备@log_ba

语法查错
CREATE   PROCEDURE   sp_backup

@dbname   varchar(20),--数据库名称
@db_bak   varchar(20),--备份设备
@log_bak   varchar(20)--日志备份设备

AS
ALTER   DATABASE     @dbname     SET   RECOVERY   FULL
BACKUP   DATABASE   @dbname     TO   @db_bak
BACKUP   LOG   @dbname     TO   @log_bak
 
GO

[解决办法]


如果数据库名是动态的,需要用动态SQL语句。

[解决办法]
--改成这样
CREATE PROCEDURE sp_backup
@dbname varchar(20),--数据库名称
@db_bak varchar(20),--备份设备
@log_bak varchar(20)--日志备份设备
AS
exec sp_executesql
N 'ALTER DATABASE @dbname SET RECOVERY FULL
BACKUP DATABASE @dbname TO @db_bak
BACKUP LOG @dbname TO @log_bak '
,N '@dbname varchar(20),@db_bak varchar(20),@log_bak varchar(20) '
,@dbname,@db_bak,@log_bak
GO

[解决办法]
类似:

declare @sql varchar(100)

set @sql = 'ALTER DATABASE ' + @dbname + ' SET RECOVERY FULL '

exec (@sql)

热点排行