[英]Dynamic sql stored procedure update query issue?
我編寫了下面的代碼,將表格中的filepath列設置為'F:\\DataMigration\\Wise\\DELTA_20121008\\Attachments\\SR\\SR_1.txt'
where SR_1 is file_name column
.txt is file_ext column from my table.
但在執行以下過程后,我在表中獲取了filepath列
'F:\DataMigration\Wise\DELTA_20121008\Attachments\file_name.file_ext'
意味着它將列名稱視為字符串,我如何將其作為列,以便它將使用該列中的值。
alter procedure [dbo].[WISEMissingAttachmentReportGenerator]
(
@tablename varchar(255), @pathonlocal nvarchar(255)
)
as
begin
--step 1
exec dbo.proc_alter_table @tablename
--step 2
EXEC ('update '+ @tablename +
' set filepath = '''+ @pathonlocal + ' file_name'+'.'+'file_ext''')
EXEC('Select * from '+@tablename)
end
exec [dbo].[WISEMissingAttachmentReportGenerator] [WISE.Non_VP_Service_Request_Attachments_File_Check_Analysis],
N'F:\DataMigration\Wise\DELTA_20121008\Attachments\SR\'
嘗試將您的陳述更改為:
EXEC ('update '+ @tablename +
' set filepath = '''+ @pathonlocal + ''' + file_name + ''.'' + file_ext')
嘗試;
EXEC('UPDATE '+ @tablename +
' SET filepath = '''+ @pathonlocal + ''' + file_name + '''+'.'+''' + file_ext')
等於;
UPDATE [YourTable] SET filepath = 'YourPath' + file_name + '.' + file_ext
declare @tblnm varchar(20) = 'test'
declare @upda varchar(20) = 'update '
declare @set varchar(25) = ' set'
declare @id varchar(25) = ' id'
declare @cmd varchar(1000)
set @cmd = @upda + @tblnm + @set + @id + '=7'
exec(@cmd)
SAMPLE SQL UPDATE QUERY - FOR BUILDING TABLENAME DYNAMICALLY
EXECUTED GUYS - THIS IS CALL JUGAAAAAAAAAD [NO NEED TO GET INTO ''' STUFF]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.