你好,我的作業環境是 MS-SQL SERVER 2008 R2
我的 Store Procedure 如下:
create table #result (Id nvarchar(24),Name nvarchar(24),ItemClassDid nvarchar(24),
Did char(24),CreateDateTime datetime,CreateUserDid nvarchar(24),
UpdateDateTime datetime,UpdateUserDid nvarchar(24),Memo text
);
declare @sqlStr nvarchar(255)
set @sqlStr='insert into #result(Id,Name,ItemClassDid,Did,CreateDateTime,CreateUserDid,UpdateDateTime,UpdateUserDid,Memo) '+
'select Id,Name,ItemClassDid,Did,CreateDateTime,CreateUserDid,UpdateDateTime,UpdateUserDid,Memo '+
'from ST_RawMaterial '+
'where '+
'CreateDateTime=''2013-11-19 17:20:06.667'''
;
exec(@sqlStr);
drop table #result;
我這一段程式碼的問題出在於,只要放上 'insert into #result' 那一行就會發生以下錯誤訊息:
訊息 105,層級 15,狀態 1,行 1
遺漏字元字串 '2013-11-1' 後面的引號。
訊息 102,層級 15,狀態 1,行 1
接近 '2013-11-1' 之處的語法不正確。
如果不放上 'insert into #result' 那一行,就可以正常顯示 CreateDateTime 欄位值為 "2013-11-19 17:20:06.667" 的資料列。
有人知道問題出在哪嗎?
感謝回覆。
declare @sqlStr nvarchar(255)
set @sqlStr='insert into #result(Id,Name,ItemClassDid,Did,CreateDateTime,CreateUserDid,UpdateDateTime,Upda...(恕刪)
是否改成下列方式
set @sqlStr='insert into #result(Id,Name,ItemClassDid,Did,CreateDateTime,CreateUserDid,UpdateDateTime,UpdateUserDid,Memo) '+
'select Id,Name,ItemClassDid,Did,CreateDateTime,CreateUserDid,UpdateDateTime,UpdateUserDid,Memo '+
'from ST_RawMaterial '+
'where '+
'CreateDateTime=Convert(DateTime,''2013-11-19 17:20:06.667'')'