{"id":42,"date":"2010-06-22T21:00:12","date_gmt":"2010-06-22T21:00:12","guid":{"rendered":"https:\/\/ibex.tech\/cloud\/?p=42"},"modified":"2022-02-17T07:14:15","modified_gmt":"2022-02-17T07:14:15","slug":"columns-fields","status":"publish","type":"post","link":"https:\/\/ibex.tech\/cloud\/sql-server\/design-microsoft-sql-server\/columns\/columns-fields","title":{"rendered":"Columns (Fields)"},"content":{"rendered":"<h4>\nColumn Types<br \/>\n<\/h4>\n<p>\nSee page 134 of &#39;Beginning SQL Server Express 2008)\n<\/p>\n<h5>\nText<br \/>\n<\/h5>\n<p style=\"padding-left: 30px;\">\nvarchar(50)\n<\/p>\n<p style=\"padding-left: 60px;\">\nFor short text fields\n<\/p>\n<p style=\"padding-left: 30px;\">\nvarchar(MAX)\n<\/p>\n<p style=\"padding-left: 60px;\">\n(Will eventually supercede text type)\n<\/p>\n<p style=\"padding-left: 30px;\">\nvNarchar(50)\n<\/p>\n<p style=\"padding-left: 60px;\">\nUnicode so double storage space but not limited characterset\n<\/p>\n<p style=\"padding-left: 30px;\">\nnVarchar(MAX)\n<\/p>\n<p style=\"padding-left: 60px;\">\nUnicode so double storage space but not limited characterset\n<\/p>\n<p style=\"padding-left: 30px;\">\ntext\n<\/p>\n<p style=\"padding-left: 60px;\">\nDon&#39;t Use &#8211; Use varchar instead as this will be superceeded by it\n<\/p>\n<h5>\nNumeric<br \/>\n<\/h5>\n<p style=\"padding-left: 30px;\">\nbinary\n<\/p>\n<p style=\"padding-left: 60px;\">\nUsed for flags etc (see bit in &#39;data&#39; for a general boolean data type)\n<\/p>\n<p style=\"padding-left: 30px;\">\ntinyint\n<\/p>\n<p style=\"padding-left: 60px;\">\n8bit unsigned 0 &#8211; 255\n<\/p>\n<p style=\"padding-left: 30px;\">\nsmallint\n<\/p>\n<p style=\"padding-left: 60px;\">\n16bit (-32,768 &#8211; 32,767)\n<\/p>\n<p style=\"padding-left: 30px;\">\nint\n<\/p>\n<p style=\"padding-left: 60px;\">\n32bit (-2,147,483,648 &#8211; 2,147,483,647)\n<\/p>\n<p style=\"padding-left: 30px;\">\nbigint\n<\/p>\n<p style=\"padding-left: 60px;\">\n64bit\n<\/p>\n<p style=\"padding-left: 30px;\">\nfloat\n<\/p>\n<p style=\"padding-left: 30px;\">\nreal\n<\/p>\n<h5>\nDateTime<br \/>\n<\/h5>\n<p style=\"padding-left: 30px;\">\nsmalldatetime\n<\/p>\n<p style=\"padding-left: 60px;\">\nDon&#39;t use as only runs to 2079\n<\/p>\n<p style=\"padding-left: 30px;\">\ndatetime\n<\/p>\n<p style=\"padding-left: 60px;\">\nStandard date and time\n<\/p>\n<p style=\"padding-left: 30px;\">\ndatetime2\n<\/p>\n<p style=\"padding-left: 60px;\">\nSame as datetime but allows fractions of a second to be stored.with greate precision\n<\/p>\n<p style=\"padding-left: 30px;\">\ndate\n<\/p>\n<p style=\"padding-left: 60px;\">\nTo store only the date\n<\/p>\n<p style=\"padding-left: 30px;\">\ntime\n<\/p>\n<p style=\"padding-left: 60px;\">\nStores time based on 24 hour clock\n<\/p>\n<h5>\nData<br \/>\n<\/h5>\n<p style=\"padding-left: 30px;\">\nbit\n<\/p>\n<p style=\"padding-left: 60px;\">\nTrue or false values\n<\/p>\n<p style=\"padding-left: 30px;\">\nbinary\n<\/p>\n<p style=\"padding-left: 60px;\">\nUsed for flags etc\n<\/p>\n<p style=\"padding-left: 30px;\">\nvarbinary\n<\/p>\n<p style=\"padding-left: 60px;\">\nFor holding data such as images. &nbsp;For file sizes &gt; approx 1-2MB it&#39;s more efficient to use an external filestream for the actual data storage (which also removes them from the database backup).\n<\/p>\n<p style=\"padding-left: 60px;\">\nYou either specify varbinary(n) and give a specific number up to 8000bytes (more is not possible),&nbsp;or you define the column to be varbinary(max) in which case it can hold up to 2 GB of data.\n<\/p>\n<p style=\"padding-left: 30px;\">\nimage\n<\/p>\n<p style=\"padding-left: 60px;\">\nDue to besuperceeded by binary &#8211; don&#39;t use\n<\/p>\n<h4>\nAdd new column<br \/>\n<\/h4>\n<p>\nBeginning SQL server 2008 express see page 155\n<\/p>\n<h5>\nExample of how to add a column<br \/>\n<\/h5>\n<pre>\r\n<code>\r\nif not exists (select * from syscolumns\r\n  where id=object_id(&#39;\r\n&#39;) and name=&#39;\r\n&#39;)\r\n    alter table\r\n add\r\n\r\nif not exists (select * from syscolumns\r\n  where id=object_id(&#39;Employees&#39;) and name=&#39;MaidenName&#39;)\r\n    alter table Employees add MaidenName varchar(64) NULL\r\ngo\r\n<\/code><\/pre>\n<h5>\nAdd leaving new column set to null for all rows<br \/>\n<\/h5>\n<pre>\r\n<code>\r\n SqlClient::SqlConnection ^SqlConnection1 = gcnew SqlClient::SqlConnection();\r\n SqlConnection1-&gt;ConnectionString = DataSourceString + DatabaseConnectionString;\r\n try\r\n {\r\n  SqlConnection1-&gt;Open();\r\n  \/\/Add &#39;IsRecording&#39; column\r\n  SqlClient::SqlCommand ^SqlCommand1 = gcnew SqlClient::SqlCommand();\r\n  SqlCommand1-&gt;Connection = SqlConnection1;\r\n  SqlCommand1-&gt;CommandType = CommandType::Text;\r\n  SqlCommand1-&gt;CommandText = &quot;if not exists (SELECT * from syscolumns WHERE id=object_id(&#39;tblLocations&#39;) and name=&#39;IsRecording&#39;) ALTER TABLE tblLocations ADD IsRecording bit NULL&quot;;\r\n  affected = SqlCommand1-&gt;ExecuteNonQuery(); \/\/affected = number of rows affected\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Column Types See page 134 of &#39;Beginning SQL Server Express 2008) Text varchar(50) For short text fields varchar(MAX) (Will eventually supercede text type) vNarchar(50) Unicode so double storage space but not limited characterset nVarchar(MAX) Unicode so double storage space but not limited characterset text Don&#39;t Use &#8211; Use varchar instead as this will be superceeded [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[],"class_list":["post-42","post","type-post","status-publish","format-standard","hentry","category-columns"],"_links":{"self":[{"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/posts\/42","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/comments?post=42"}],"version-history":[{"count":8,"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/posts\/42\/revisions"}],"predecessor-version":[{"id":1614,"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/posts\/42\/revisions\/1614"}],"wp:attachment":[{"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/media?parent=42"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/categories?post=42"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibex.tech\/cloud\/wp-json\/wp\/v2\/tags?post=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}