Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

Sql Server 2008 sp_executesql सिंटैक्स सहायता - मुझे लगता है कि मेरे उद्धरण सही नहीं हैं

डायनामिक एसक्यूएल उस तरह काम नहीं करता है।
आप अभी भी एक गतिशील स्ट्रिंग को पैरामीटर पास नहीं कर सकते हैं जिसका उपयोग ऑब्जेक्ट नामों के स्थान पर किया जाएगा।

आपको मैन्युअल रूप से @DBName . की जगह, क्वेरी स्ट्रिंग का निर्माण स्वयं करना होगा वास्तविक मूल्य के साथ। हालांकि, आप बिना किसी उद्धरण के समीकरण के दाईं ओर एक पैरामीटर का उपयोग कर सकते हैं।

साथ ही, किसी ऑब्जेक्ट का नाम किसी क्वेरी में डालते समय, हमेशा QUOTENAME समारोह। यह नाम से सही ढंग से बच जाएगा ताकि किसी ऑब्जेक्ट के नाम में कुछ वर्णों के कारण कोई sql इंजेक्शन या अवांछित व्यवहार न हो।

SET @sql = N' IF EXISTS (SELECT NAME FROM master.sys.databases sd where name = @DBName)
BEGIN
  ALTER DATABASE ' + quotename(@DBName, '[') + N' SET  RESTRICTED_USER WITH ROLLBACK IMMEDIATE
  ALTER DATABASE ' + quotename(@DBName, '[') + N' SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
  DROP DATABASE ' + quotename(@DBName, '[') + N' 
END';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में लेफ्ट जॉइन बनाम लेफ्ट आउटर जॉइन

  2. SQL सर्वर में स्वचालित योजना सुधार

  3. अल्फा कॉलम के लिए एएससी/डीईएससी द्वारा सशर्त एसक्यूएल ऑर्डर

  4. अद्यतन पर Sql त्रुटि:अद्यतन विवरण विदेशी कुंजी बाधा के साथ विरोध करता है

  5. एसएसआईएस पैकेज में त्रुटि लॉग या कस्टम त्रुटि लॉग कैसे बनाएं?