我有这个代码
ALTER PROCEDURE [dbo].[tablepass12]
(@TableName nvarchar(20))
AS
BEGIN
DECLARE @SQL VARCHAR(8000)
SELECT @SQL = 'SQLCMD -S ICB3110\SQLEXPRESS -d teena -E -Q "SELECT * FROM "'+@TableName+' -o d:\processing\'+@TableName+'.csv'
EXEC MASTER..XP_CMDSHELL @SQL
END;
Run Code Online (Sandbox Code Playgroud)
执行它时,我收到此错误
消息 105,级别 15,状态 1,服务器 ICB3110\SQLEXPRESS,第 1 行
字符串 'AIR_LINE ' 后的未闭合引号。消息 102,级别 15,状态 1,服务器 ICB3110\SQLEXPRESS,第 1 行
“AIR_LINE”附近的语法不正确。
正如错误所述:
非封闭引号
你的字符串是:
'SQLCMD -S ICB3110\SQLEXPRESS -d teena -E -Q "SELECT * FROM "'+@TableName+' -o d:\processing\'+@TableName+'.csv'
Run Code Online (Sandbox Code Playgroud)
一旦@TableName
变量被替换为它的值,字符串就会呈现为:
'SQLCMD -S ICB3110\SQLEXPRESS -d teena -E -Q "SELECT * FROM "AIR_LINE -o d:\processing\AIR_LINE.csv'
Run Code Online (Sandbox Code Playgroud)
如果查看-Q
参数,它的格式错误为:
"SELECT * FROM "AIR_LINE
Run Code Online (Sandbox Code Playgroud)
您只需要将双引号 ( "
) 移到变量的另一侧(它应该在 的左侧,而-o
不是在 的右侧FROM
):
'SQLCMD -S ICB3110\SQLEXPRESS -d teena -E -Q "SELECT * FROM '+@TableName+'" -o d:\processing\'+@TableName+'.csv'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
400 次 |
最近记录: |