我正在尝试在SQL Server 2008 Express中运行存储过程。但我总是得到这个错误:
语法不正确')'内存存储过程
调用语法为:
Use Demo1
SP_Backup_StoredProcedure '[dbo.FilesStore]', 'F'
并且存储过程的代码是:
ALTER PROCEDURE [dbo].[SP_Backup_StoredProcedure]
@dbName sysname, @backupTypeToRun CHAR(1)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sqlCommand NVARCHAR(1000)
DECLARE @dateTime NVARCHAR(20)
SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','-') +'-' +
REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
DECLARE @databaseFileName NVARCHAR(200)
SET @databaseFileName = replace(@dbName,']','')
SET @databaseFileName = replace(@databaseFileName,'[','')
IF @backupTypeToRun = 'F'
SET @sqlCommand = 'BACKUP DATABASE ' + @dbName +
' TO DISK = ''C:\DbBackups\' + @databaseFileName + '_Full_' + @dateTime + '.BAK'''
IF @backupTypeToRun = 'D'
SET @sqlCommand = 'BACKUP DATABASE ' + @dbName +
' TO DISK = ''C:\DbBackups\' + @databaseFileName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
IF @backupTypeToRun = 'L'
SET @sqlCommand = 'BACKUP LOG ' + @dbName +
' TO DISK = ''C:\DbBackups\' + @databaseFileName + '_Log_' + @dateTime + '.TRN'''
EXECUTE sp_executesql @sqlCommand
END
请尝试不同的答案,我也使用逗号作为参数和每个可用的答案。请帮忙
答案 0 :(得分:1)
使用
SP_Backup_StoredProcedure '[FilesStore]', 'F'
答案 1 :(得分:1)
您的示例存在许多问题。
[databasename]
[databasename].[dbo].[tablename]
EXEC schema.ProcName
或EXECUTE schema.ProcName
EXEC schema.ProcName @dbname = '[dbname]', @backupTypeToRun = 'F'
sp_
保留用于内置存储过程。将其重命名为usp_
或其他任何内容。当SP以'sp_'
开头时,SQL Server将首先尝试在内置列表中找到它。tbl_test
而不是数据库名称。