আমি যখন কার্সার লুপের মধ্যে নিম্নলিখিত এসকিউএল স্নিপেটটি চালানোর চেষ্টা করি,
set @cmd = N'exec sp_rename ' + @test + N',' +
RIGHT(@test,LEN(@test)-3) + '_Pct' + N',''COLUMN'''
আমি নিম্নলিখিত বার্তাটি পেয়েছি,
এমএসজি 15248, স্তর 11, রাজ্য 1, পদ্ধতি sp_rename, লাইন 213
হয় প্যারামিটারটি@objname
অস্পষ্ট বা দাবি করা@objtype
(COLUMN) ভুল।
কী ভুল এবং আমি কীভাবে এটি ঠিক করব? আমি বন্ধনীর মধ্যে কলামের নামের মোড়কে চেষ্টা []
, এবং ডবল কোট""
প্রস্তাবিত কিছু অনুসন্ধানের ফলাফলের মতো ।
সম্পাদনা 1 -
এখানে পুরো স্ক্রিপ্ট। আমি কীভাবে টেবিলের নামটি পুনরায় নামকরণ এসপিতে পাস করব? আমি কীভাবে এটি করব তা নিশ্চিত নই যেহেতু কলামের নামগুলি অনেকগুলি সারণির একটিতে রয়েছে।
BEGIN TRANSACTION
declare @cnt int
declare @test nvarchar(128)
declare @cmd nvarchar(500)
declare Tests cursor for
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE 'pct%' AND TABLE_NAME LIKE 'TestData%'
open Tests
fetch next from Tests into @test
while @@fetch_status = 0
BEGIN
set @cmd = N'exec sp_rename ' + @test + N',' + RIGHT(@test,LEN(@test)-3) + '_Pct' + N', column'
print @cmd
EXEC sp_executeSQL @cmd
fetch next from Tests into @test
END
close Tests
deallocate Tests
ROLLBACK TRANSACTION
--COMMIT TRANSACTION
সম্পাদনা 2 - স্ক্রিপ্টটি এমন কলামগুলির নাম পরিবর্তনের জন্য তৈরি করা হয়েছে যার নাম একটি প্যাটার্নের সাথে মেলে, এই ক্ষেত্রে "pct" উপসর্গ দিয়ে। কলামগুলি ডাটাবেসের মধ্যে বিভিন্ন সারণিতে ঘটে। সমস্ত টেবিলের নামগুলি "টেস্টডেটা" উপসর্গযুক্ত।