আমার কম্পিউটারের নামে হাইফেন টি-এসকিউএল ত্রুটি ঘটায়


13

আমি একজন বিকাশকারী, ডিবিএ নই (যা দেখায়, আমি ভয় পাই)। আমি আমার বাড়ির কম্পিউটারে এসকিউএল সার্ভার 2014 এক্সপ্রেস দিয়ে রিপোর্ট বিল্ডার 3.0 চালানোর চেষ্টা করছি (নামযুক্ত John-PC) এবং আমার রিপোর্টগুলি চালাতে পারছি না।

আমি ঘটনাক্রমে একটি ব্যবহারকারী / লগইন কম্বো নির্মিত user = John-PCএবং login = John-PC\John। আমি যখন এন্ট্রি মুছে ফেলার চেষ্টা করি তখন:

Drop Login John-PC\John

আমি একটি ত্রুটি পেয়েছি:

ভুল বাক্য গঠন কাছাকাছি '-'.

আমি মনে করি সমস্যাটি আমার কম্পিউটারের নামে হাইফেন।

  1. সিনট্যাক্স ত্রুটির কাছাকাছি যাওয়ার কোনও উপায় আছে কি?
  2. ব্যবহারকারীর পরিবর্তন বা বাদ দেওয়ার অন্য কোনও উপায় আছে (আমি এ থেকে নামার চেষ্টা করেছি sys.server_principalsতবে একটি ত্রুটি পেয়েছি যা আমি এইডক পরিবর্তন করতে পারি না)।
  3. আমি কি রিপোর্টার বিল্ডারকে কোনও নতুন ব্যবহারকারী / লগইন নামটি দিতে পারি?
  4. যদি উপরের কোনওটি না হয় তবে আমি কী আমার কম্পিউটারের নামটি পরিবর্তন করতে পারি John_PCবা এটি এমন একটি অন্যান্য হোস্ট তৈরি করতে পারে যা আমি কল্পনাও করতে পারি না?

উত্তর:


21

যখন কোনও নামে আপনার বিশেষ অক্ষর থাকে তখন এসকিউএলকে এটি সনাক্তকারী হিসাবে জানতে দেওয়ার জন্য [] এর চারপাশে রাখুন। আপনি কীভাবে বিশেষ অক্ষর পরিচালনা করেন তাও এটি।

আপনার ক্ষেত্রে তাই

Drop Login [John-PC\John]

12

যদি আপনার কেবলমাত্র একটি লগইন থাকে তবে ম্যানুয়ালি এটির সাথে উদ্ধৃতি দিয়ে[ ] কাজ করা হবে। আপনি তাদের অনেককে থাকে, তাহলে আপনি একটি গতিশীল SQL গড়ে তুলতে নিচের মত progrmatically পেতে আছে drop login [login_to_drop]থেকে sys.server_principalsব্যবহার QUOTENAME()tsql

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql+= N'DROP LOGIN ' + QUOTENAME(name) + ';' 
FROM sys.server_principals 
WHERE name <> N'sa'                 -- do not drop SA
AND name NOT LIKE N'##%'            -- special logins 
AND name NOT LIKE N'NT [AS]%'       -- special logins NT related
AND [type] IN ('S', 'U', 'G','R')   -- S = SQL login | U = Windows login | G = Windows group | R = Server role
AND principal_id > 256
--AND name in ()                    -- Filter to drop specific logins
AND name <> SUSER_SNAME();          -- This will avoid yourself for being dropped !

PRINT @sql;
-- once you verify that below logins will be dropped, 
-- uncomment below line 
-- EXEC master.sys.sp_executesql @sql;

পাঠ শিখেছি, বিশেষ অক্ষর ব্যবহার করবেন না .. অন্যথায় কিছু ব্যথা সহকারে তাদের মোকাবেলায় প্রস্তুত থাকুন :-)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.