ध्यान दें:देखें डायनेमिक SQL का अभिशाप और आशीर्वाद - डायनेमिक टेबल और कॉलम नामों से निपटना
आपको अभी भी पैरामीटरयुक्त sql का उपयोग करना चाहिए और exec sp_executesql
. का उपयोग करना चाहिए (जो पैरामीटर लेता है)। QUOTENAME
का भी उपयोग करें ऑब्जेक्ट के नामों के आस-पास कोष्ठकों को स्वयं संयोजित करने के बजाय।
SET @SQLString = N'SELECT @CountOUT = COUNT(*) FROM ' +
QUOTENAME(@table_name) + ' WHERE ' +
QUOTENAME(@new_column_name) + ' = @description'
EXECUTE sp_executesql @SQLString
,N'@description varchar(50), @CountOUT int OUTPUT'
,@description = @description
,@CountOUT = @CountOUT OUTPUT;