Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / SqlBuilder.cs / 1305376 / SqlBuilder.cs
using System; using System.Collections.Generic; using System.Diagnostics; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Text; namespace System.Data.Linq.SqlClient { using System.Data.Linq.Mapping; using System.Data.Linq.Provider; using System.Diagnostics.CodeAnalysis; ////// Class for building up SQL DDL commands. /// internal static class SqlBuilder { internal static string GetCreateDatabaseCommand(string catalog, string dataFilename, string logFilename) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("CREATE DATABASE {0}", SqlIdentifier.QuoteIdentifier(catalog)); if (dataFilename != null) { sb.AppendFormat(" ON PRIMARY (NAME='{0}', FILENAME='{1}')", Path.GetFileName(dataFilename), dataFilename); sb.AppendFormat(" LOG ON (NAME='{0}', FILENAME='{1}')", Path.GetFileName(logFilename), logFilename); } return sb.ToString(); } internal static string GetDropDatabaseCommand(string catalog) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("DROP DATABASE {0}", SqlIdentifier.QuoteIdentifier(catalog)); return sb.ToString(); } internal static string GetCreateSchemaForTableCommand(MetaTable table) { StringBuilder sb = new StringBuilder(); Listparts = new List (SqlIdentifier.GetCompoundIdentifierParts(table.TableName)); // table names look like this in Yukon (according to MSDN): // [ database_name . [ schema_name ] . | schema_name . ] table_name // ... which means that either way, the schema name is the second to last part. if ((parts.Count) < 2) { return null; } string schema = parts[parts.Count - 2]; if (String.Compare(schema, "DBO", StringComparison.OrdinalIgnoreCase) != 0 && String.Compare(schema, "[DBO]", StringComparison.OrdinalIgnoreCase) != 0) { sb.AppendFormat("CREATE SCHEMA {0}", SqlIdentifier.QuoteIdentifier(schema)); } return sb.ToString(); } internal static string GetCreateTableCommand(MetaTable table) { StringBuilder sb = new StringBuilder(); StringBuilder decl = new StringBuilder(); BuildFieldDeclarations(table, decl); sb.AppendFormat("CREATE TABLE {0}", SqlIdentifier.QuoteCompoundIdentifier(table.TableName)); sb.Append("("); sb.Append(decl.ToString()); decl = new StringBuilder(); BuildPrimaryKey(table, decl); if (decl.Length > 0) { string name = String.Format(Globalization.CultureInfo.InvariantCulture, "PK_{0}", table.TableName); sb.Append(", "); sb.AppendLine(); sb.AppendFormat(" CONSTRAINT {0} PRIMARY KEY ({1})", SqlIdentifier.QuoteIdentifier(name), decl.ToString()); } sb.AppendLine(); sb.Append(" )"); return sb.ToString(); } internal static void BuildFieldDeclarations(MetaTable table, StringBuilder sb) { int n = 0; Dictionary
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AutomationEvent.cs
- WebPartHeaderCloseVerb.cs
- HtmlMobileTextWriter.cs
- XmlTextAttribute.cs
- X509Certificate.cs
- FrameworkObject.cs
- FacetValueContainer.cs
- BitmapScalingModeValidation.cs
- EventWaitHandle.cs
- Soap.cs
- _Win32.cs
- UnicodeEncoding.cs
- SortKey.cs
- WebPartDisplayMode.cs
- WindowsIPAddress.cs
- DBSqlParserTable.cs
- SkinBuilder.cs
- SiteMapNodeCollection.cs
- ProtocolsConfiguration.cs
- UniqueConstraint.cs
- RichTextBoxAutomationPeer.cs
- CapabilitiesState.cs
- ContextMarshalException.cs
- ByteStreamMessage.cs
- CheckableControlBaseAdapter.cs
- DragSelectionMessageFilter.cs
- ScrollData.cs
- SafeLocalMemHandle.cs
- CompilerScopeManager.cs
- ListBase.cs
- AttributeCollection.cs
- FlowPosition.cs
- PageCatalogPartDesigner.cs
- X509Utils.cs
- FileReader.cs
- ProfileManager.cs
- CqlWriter.cs
- ThrowOnMultipleAssignment.cs
- __FastResourceComparer.cs
- ColorContext.cs
- BrowserTree.cs
- PackagingUtilities.cs
- TraceSwitch.cs
- TryExpression.cs
- TypeDescriptor.cs
- TimeoutConverter.cs
- SqlVisitor.cs
- FrameworkObject.cs
- SynthesizerStateChangedEventArgs.cs
- ListBindingHelper.cs
- WebZone.cs
- XmlDictionary.cs
- AnonymousIdentificationModule.cs
- TreeViewImageKeyConverter.cs
- AutomationFocusChangedEventArgs.cs
- RightNameExpirationInfoPair.cs
- Literal.cs
- DependencyPropertyDescriptor.cs
- SqlCharStream.cs
- OdbcParameterCollection.cs
- RecognizerBase.cs
- BaseInfoTable.cs
- ParagraphVisual.cs
- MimePart.cs
- SignatureDescription.cs
- PersistenceException.cs
- ObjectStateFormatter.cs
- GridViewSortEventArgs.cs
- Hex.cs
- ManualWorkflowSchedulerService.cs
- XmlDeclaration.cs
- WebControlsSection.cs
- TitleStyle.cs
- NameValuePermission.cs
- X509RawDataKeyIdentifierClause.cs
- TypeUsageBuilder.cs
- InteropExecutor.cs
- SerializableAttribute.cs
- MetadataArtifactLoaderFile.cs
- SystemIPGlobalProperties.cs
- GridEntryCollection.cs
- WebPageTraceListener.cs
- SystemResourceHost.cs
- AddressHeaderCollection.cs
- XMLSyntaxException.cs
- _NativeSSPI.cs
- SvcMapFileLoader.cs
- RemoteWebConfigurationHostStream.cs
- IndexedString.cs
- Crc32.cs
- DataControlPagerLinkButton.cs
- TextDecorationLocationValidation.cs
- ParagraphVisual.cs
- AnimationClockResource.cs
- ServiceModelConfigurationSectionGroup.cs
- ToolStripDropDown.cs
- AttributeSetAction.cs
- VirtualPathProvider.cs
- ValidatorCollection.cs
- KnownBoxes.cs