Sql server 靠近'的语法不正确;c:';
这是一个测试SP i的样本,创建于 当我运行它时,“c:”附近的语法不正确。” 有人知道吗 变化Sql server 靠近'的语法不正确;c:';,sql-server,Sql Server,这是一个测试SP i的样本,创建于 当我运行它时,“c:”附近的语法不正确。” 有人知道吗 变化 set @path = 'c:temp\TextImpoted0.txt' 到 \是重要的更改 set @path = 'c:temp\TextImpoted0.txt' 到 \很重要似乎有几个问题。首先,变量path从未声明过,它也被错误地称为path1,需要更改。其次,需要引用bulk_cmd字符串中的一些值 应能正常工作的更正版本: CREATE PROCEDURE [dbo].[Text
set @path = 'c:temp\TextImpoted0.txt'
到
\
是重要的更改
set @path = 'c:temp\TextImpoted0.txt'
到
\
很重要似乎有几个问题。首先,变量path
从未声明过,它也被错误地称为path1
,需要更改。其次,需要引用bulk_cmd
字符串中的一些值
应能正常工作的更正版本:
CREATE PROCEDURE [dbo].[TextImpotedSP2]
AS
DECLARE @path NVARCHAR(max)
SET @path = 'c:\temp\TextImpoted0.txt'
SET NOCOUNT ON;
DECLARE @bulk_cmd NVARCHAR(max);
SET @bulk_cmd = '
BULK INSERT TextImpoted
FROM '''+ @path + '''
WITH
(
FIELDTERMINATOR = ' + ''';''' + ',
ROWTERMINATOR = ' + '''\n'''+ '
)';
--PRINT @bulk_cmd
EXEC sp_executesql @bulk_cmd
此外,路径字符串'c:temp\textImported0.txt'
可能应该是'c:\temp\textImported0.txt'
,因为如果使用相对路径,可能会得到意外的结果
编辑:将解决方案添加到作为答案发布的后续问题
CREATE PROCEDURE [dbo].[TextImpoted01]
AS
SET NOCOUNT ON;
DECLARE @SQL NVARCHAR(100)
SELECT TOP (1) @SQL = total FROM DealCounter
DECLARE @path NVARCHAR(max)
SET @path = 'c:\temp\TextImpoted'+ @SQL + '.txt'
DECLARE @bulk_cmd NVARCHAR(max);
SET @bulk_cmd = '
BULK INSERT TextImpoted
FROM '''+ @path + '''
WITH
(
FIELDTERMINATOR = ' + ''';''' + ',
ROWTERMINATOR = ' + '''\n'''+ '
)';
--PRINT @bulk_cmd
EXEC sp_executesql @bulk_cmd
似乎有几个问题。首先,变量
path
从未声明过,它也被错误地称为path1
,需要更改。其次,需要引用bulk_cmd
字符串中的一些值
应能正常工作的更正版本:
CREATE PROCEDURE [dbo].[TextImpotedSP2]
AS
DECLARE @path NVARCHAR(max)
SET @path = 'c:\temp\TextImpoted0.txt'
SET NOCOUNT ON;
DECLARE @bulk_cmd NVARCHAR(max);
SET @bulk_cmd = '
BULK INSERT TextImpoted
FROM '''+ @path + '''
WITH
(
FIELDTERMINATOR = ' + ''';''' + ',
ROWTERMINATOR = ' + '''\n'''+ '
)';
--PRINT @bulk_cmd
EXEC sp_executesql @bulk_cmd
此外,路径字符串'c:temp\textImported0.txt'
可能应该是'c:\temp\textImported0.txt'
,因为如果使用相对路径,可能会得到意外的结果
编辑:将解决方案添加到作为答案发布的后续问题
CREATE PROCEDURE [dbo].[TextImpoted01]
AS
SET NOCOUNT ON;
DECLARE @SQL NVARCHAR(100)
SELECT TOP (1) @SQL = total FROM DealCounter
DECLARE @path NVARCHAR(max)
SET @path = 'c:\temp\TextImpoted'+ @SQL + '.txt'
DECLARE @bulk_cmd NVARCHAR(max);
SET @bulk_cmd = '
BULK INSERT TextImpoted
FROM '''+ @path + '''
WITH
(
FIELDTERMINATOR = ' + ''';''' + ',
ROWTERMINATOR = ' + '''\n'''+ '
)';
--PRINT @bulk_cmd
EXEC sp_executesql @bulk_cmd
@萨利赫,不客气。如果我的回答解决了你的问题,请考虑将它标记为“接受”。萨利赫,不客气。如果我的答案解决了你的问题,请考虑将它标记为接受。