كيف يمكنني تعطيل المعرفات المقتبسة عند البرمجة النصية للكائنات قاعدة بيانات SQL Server في Visual Studio؟

StackOverflow https://stackoverflow.com/questions/3529296

سؤال

أنا أستخدم Visual Studio 2005 لإرسال قاعدة بيانات حتى أتمكن من وضعها في Subversion. الآن هناك شكوى واحدة لدي هي أنها تضع رمز الإجراء المخزن في سلسلة حرفية واحدة ، كما في المثال. أقل.

/****** Object:  StoredProcedure [dbo].[MyStoredProc]    Script Date: 08/19/2010 16:40:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[MyStoredProc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE   PROCEDURE [dbo].[MyStoredProc]

-- My T-SQL code here

END' 
END
GO

لا أحب هذا لأنه بعد ذلك ، فإن تسليط الضوء على بناء الجملة عديم الفائدة. هل هناك على أي حال يمكنني إيقاف تشغيل هذا السلوك ، أي بحيث يزيل

EXEC dbo.sp_executesql @statement = N'

جزء؟

ما هو الدافع للقيام بذلك بهذه الطريقة في المقام الأول؟ كان الاقتباس للسلسلة دائمًا موضوعًا إلى حد ما من مجموعة أعمى لي ، لذا فأنا متأكد من أنني لست على دراية بكل الآثار المترتبة. قد أكون أكثر قبولًا لهذا السلوك إذا فهمت ما هو عليه.

شكرًا

هل كانت مفيدة؟

المحلول

يقوم SQL Server Management Studio Scrips out بتنفيذ SQL إذا قمت بتحديد الخيار

تشمل إن لم يكن موجودًا

إذا قمت بإلغاء تحديد أن البرنامج النصي يتم إنشاؤه كما تبحث عنه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top