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
- _UncName.cs
- SystemResourceKey.cs
- SHA1.cs
- Subordinate.cs
- FixedDocument.cs
- PageCodeDomTreeGenerator.cs
- SymLanguageType.cs
- NamedPipeDuplicateContext.cs
- DesignerMetadata.cs
- SessionStateSection.cs
- JsonClassDataContract.cs
- BorderGapMaskConverter.cs
- WindowInteropHelper.cs
- DebugHandleTracker.cs
- Triplet.cs
- AuthenticationConfig.cs
- FolderBrowserDialog.cs
- HtmlControlPersistable.cs
- ColumnResizeUndoUnit.cs
- SpinWait.cs
- WebPartsPersonalization.cs
- Parser.cs
- ColorConverter.cs
- AppDomainUnloadedException.cs
- CompositeTypefaceMetrics.cs
- CredentialCache.cs
- WindowInteractionStateTracker.cs
- PrintDialog.cs
- HotSpot.cs
- RealProxy.cs
- URLString.cs
- PeerName.cs
- ByteAnimation.cs
- PointUtil.cs
- XPathNodePointer.cs
- MeasureItemEvent.cs
- InputMethodStateChangeEventArgs.cs
- ItemsPresenter.cs
- BackgroundWorker.cs
- ScrollBar.cs
- HelpKeywordAttribute.cs
- HttpModulesInstallComponent.cs
- _AutoWebProxyScriptHelper.cs
- StrokeNodeOperations.cs
- Control.cs
- BufferedWebEventProvider.cs
- mansign.cs
- DataTableMappingCollection.cs
- SchemaAttDef.cs
- DropShadowEffect.cs
- DataGridViewCellEventArgs.cs
- DesignerMetadata.cs
- BitmapEffect.cs
- BaseTransportHeaders.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- TypeInfo.cs
- CompilerWrapper.cs
- FilterException.cs
- RC2CryptoServiceProvider.cs
- UnsafeNativeMethodsCLR.cs
- Walker.cs
- QueryContinueDragEvent.cs
- DataGridColumnHeadersPresenter.cs
- XNodeNavigator.cs
- FtpWebRequest.cs
- CodeRegionDirective.cs
- ClientCultureInfo.cs
- ProcessThreadCollection.cs
- Update.cs
- InputLanguageSource.cs
- CaseStatement.cs
- AuthenticationException.cs
- MarshalByRefObject.cs
- TargetConverter.cs
- UnmanagedHandle.cs
- MessageQueueCriteria.cs
- FamilyTypefaceCollection.cs
- TriggerAction.cs
- Decoder.cs
- safemediahandle.cs
- DataGridViewTextBoxColumn.cs
- QilUnary.cs
- FreezableOperations.cs
- CallbackHandler.cs
- SQLDecimal.cs
- ExpressionVisitorHelpers.cs
- ContentPosition.cs
- SslStream.cs
- ChildDocumentBlock.cs
- ListViewItemMouseHoverEvent.cs
- ButtonDesigner.cs
- WindowsRebar.cs
- Types.cs
- ConstructorExpr.cs
- PageMediaType.cs
- DbMetaDataColumnNames.cs
- Comparer.cs
- ReferencedType.cs
- ParameterBuilder.cs
- CompoundFileReference.cs