{"id":7,"date":"2018-11-15T01:00:14","date_gmt":"2018-11-15T09:00:14","guid":{"rendered":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/fun-with-guids\/"},"modified":"2025-06-11T08:06:07","modified_gmt":"2025-06-11T15:06:07","slug":"fun-with-guids","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/fun-with-guids\/","title":{"rendered":"Fun with GUIDs!"},"content":{"rendered":"<p>If you are asking \u201cGUI-what?\u201d, not to worry, you aren\u2019t alone.\u00a0 A GUID is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\">Globally Unique Identifier<\/a> that helps manage the relational data in the Common Data Service for Apps and SQL Server.\u00a0 PowerApps is committed to providing an environment where working with GUIDs is not required.\u00a0 If you have never seen one before you can safely skip this blog post.<\/p>\n<p>For others, you may be accustomed to working with primary and foreign keys perhaps even in Canvas apps today.\u00a0 Or perhaps you have lots of experience with Microsoft platforms and you\u2019ve been wondering \u201chey, this is supposed to be a Microsoft product, where are all the GUIDs?\u201d\u00a0 If either of these cases is true, this blog post is for you.\u00a0 Canvas apps are now ready to claim their birthright.\u00a0 We have added GUIDs as a first class data type.<\/p>\n<h2>Motivation<\/h2>\n<p>Honestly, we didn\u2019t want to add GUIDs as they are far from user friendly.\u00a0 Our hand was forced when we integrated with CDS which exclusively uses GUIDs for database keys.\u00a0 Until now we\u2019ve been using text strings to hold a GUID which works in most cases but has issues.\u00a0 Most notably, some of you may have experienced this error:<\/p>\n<p>A binary operator with incompatible types was detected. Found operand types &#8216;Edm.String&#8217; and &#8216;Edm.Guid&#8217; for operator kind &#8216;Equal&#8217;.<\/p>\n<p>CDS can be strict about only comparing strings to strings and GUIDs to GUIDs.\u00a0 We tried relaxing the rules and using heuristics to help but we just couldn\u2019t always get it right \u2013 I saw one of these in a customer app only last week.\u00a0 It became clear to us that we needed to add a proper GUID type.<\/p>\n<p>There were other reasons too.\u00a0 Working with GUIDs as a hexadecimal string is error prone.\u00a0 Case sensitive compares might fail if the upper\/lower case is different on one of the alpha hex digits.\u00a0 We can do better error detection if we know the string should be a GUID.\u00a0 For example without it, if a single digit is missing, a Filter formula may fail to return any results rather than give an error for a improper GUID.\u00a0 This work also benefits SQL Server which has a GUID data type.\u00a0 <a href=\"https:\/\/powerusers.microsoft.com\/t5\/PowerApps-Ideas\/Create-a-GUID\/idi-p\/31673#M1981\">You also asked for it in the community<\/a>.<\/p>\n<h2>GUIDs in CDS<\/h2>\n<p>All entities within CDS have a GUID primary key field to uniquely identify each record.\u00a0 This field usually has the same display name as the entity and the logical name has an <strong>Id<\/strong> tacked on the end.\u00a0 The data type is <strong>Unique Identifier<\/strong>.\u00a0 The field is always required and the value is generated by CDS when the record is created.\u00a0 For example, for the Account entity (you may need to change the field filter to <strong>All<\/strong> at the top of he screen):<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"278\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png\" style=\"display: inline; background-image: none;\" title=\"image\" width=\"764\"\/><\/a><\/p>\n<p>If you look at this with the Data tab in the portal, again adjusting the field filter and scrolling, you\u2019ll see the signature hexadecimal string of a GUID:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b9c4f1f2-0d55-4b97-9abf-a9a3a3c6de8f.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"463\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b9c4f1f2-0d55-4b97-9abf-a9a3a3c6de8f.png\" style=\"display: inline; background-image: none;\" title=\"image\" width=\"761\"\/><\/a><\/p>\n<p>Today, Canvas apps see this field as a string that can hold anything, indistinguishable from a string that holds \u201cHello, World\u201d and that\u2019s the problem.\u00a0 Canvas apps are strongly typed \u2013 we know the type of everything \u2013 and that knowledge allows us to make good suggestions when authoring a formula and flag errors before they happen.\u00a0 If everything is reduced to the lowest common denominator (text string) then inferences based on type are no longer possible.<\/p>\n<p>In the below screen shots, we\u2019re displaying the Account field in a Gallery control.\u00a0 We\u2019re also doing a comparison to \u201cHello, World\u201d which always returns false.\u00a0 In a strongly typed world this comparison should be an error \u2013 you should only be able to compare GUIDs to GUIDs.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c7608cc5-ddcf-4a6e-a9f4-ef6ff6d2cacb.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"336\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c7608cc5-ddcf-4a6e-a9f4-ef6ff6d2cacb.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"860\"\/><\/a><\/p>\n<h2>Experimental feature: Treat GUIDs as GUIDs<\/h2>\n<p>In the File menu, App settings, Advanced settings, toward the bottom of the list you will find this <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/working-with-experimental\">experimental switch<\/a>:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/beb9e71b-5ed1-4b7a-9c8f-77414e68f70a.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"142\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/beb9e71b-5ed1-4b7a-9c8f-77414e68f70a.png\" style=\"display: inline; background-image: none;\" title=\"image\" width=\"562\"\/><\/a><\/p>\n<p>It is currently off by default.\u00a0 We recently started the process to move this to Preview status and turn it on by default.\u00a0 Let\u2019s turn it on now, refresh our data source, and see what it does to our app:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/475124d8-cef8-4519-8629-88f3ae4f4e50.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"330\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/475124d8-cef8-4519-8629-88f3ae4f4e50.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"859\"\/><\/a><\/p>\n<p>Notice that we are still displaying the GUID value just fine, as we can coerce a GUID to a string.\u00a0 There is a known issue with string coercion right now, for anything more complex than showing a value in a label control use the <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/functions\/function-text\"><strong>Text function<\/strong><\/a> to manually coerce to a string for the next couple of weeks. <\/p>\n<p>Notice that the comparison to \u201cHello, World\u201d is now throwing an error about a type mismatch between Guid and Text.\u00a0 <strong>Yay, we got an error!<\/strong><\/p>\n<p>Ok, that\u2019s fine, we\u2019ve caught the potential \u201cHello, World\u201d bug.\u00a0 But what if you want to compare Account to a literal well-known GUID value?\u00a0 To do this, you can convert a properly formatted string containing a GUID to a value of data type GUID with the <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/functions\/function-guid\"><strong>GUID function<\/strong><\/a>:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/94ede83b-e533-4a34-8252-e112f923be9e.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"342\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/94ede83b-e533-4a34-8252-e112f923be9e.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"864\"\/><\/a><\/p>\n<p>Now we can do the comparison without an error as we are comparing apples to apples, or GUIDs to GUIDs in this case.\u00a0 The Account GUID for the second Account matches our string that has been converted to a GUID value, and thus it shows <strong>true<\/strong> while the rest show <strong>false<\/strong>.<\/p>\n<p><strong>We believe this is the only case that you will need to change in your formulas.\u00a0 <\/strong>If you have a literal GUID in your formulas today and are doing direct comparisons to a GUID value coming from CDS or SQL Server, then you need to wrap it with the GUID function when this experimental feature switch is turned on.<\/p>\n<h2>GUIDs in SQL Server<\/h2>\n<p>Let\u2019s now turn our attention to SQL Server.\u00a0 Here\u2019s part of the schema definition for the Customers table from Adventure Works, modified to use a GUID for the primary key:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/1058ec82-a47a-4a3b-9bb2-0bd8a7a2d5ca.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"230\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/1058ec82-a47a-4a3b-9bb2-0bd8a7a2d5ca.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"481\"\/><\/a><\/p>\n<p>If we run a Select query on this table in SSMS:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/76deb72f-f73a-4968-a00c-88f7432b0cbe.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"302\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/76deb72f-f73a-4968-a00c-88f7432b0cbe.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"935\"\/><\/a><\/p>\n<p>And let\u2019s see how this looks in a Canvas app without the \u201ctreat GUIDs as GUIDs\u201d experimental switch turned on:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/cddab75b-085b-44a7-8e90-f9ed62de7c40.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"371\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/cddab75b-085b-44a7-8e90-f9ed62de7c40.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"407\"\/><\/a><\/p>\n<p>Do you notice anything a little different about the GUIDs in this example versus the CDS example?\u00a0 Look carefully\u2026\u00a0 SQL uses uppercase letters in their GUIDs.\u00a0 Wow, yes that is subtle.\u00a0 But that could make a big difference when doing comparisons as the \u201c=\u201d operator is case sensitive for strings while GUIDs are not (after all, you are only looking at the hexadecimal representation of a 128-bit binary number).\u00a0 That could lead to a really difficult bug to track down.<\/p>\n<p>If we turn on the GUID experimental feature, then the GUIDs are normalized and coerce to a string with lower case letters:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/18a8bd50-f49f-430c-b3c3-7e93e82aa8d4.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"365\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/18a8bd50-f49f-430c-b3c3-7e93e82aa8d4.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"401\"\/><\/a><\/p>\n<p><strong>Besides the string comparison discussed above for CDS, this is the only other difference we are aware of when using SQL Server.\u00a0 <\/strong>It is very unlikely that you are dependent on GUIDs being displayed with upper case letters.\u00a0 In fact except in debugging situations you probably never show a GUID to an end user.\u00a0 But if this is important, you can always use the <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/functions\/function-lower-upper-proper\"><strong>Upper function<\/strong><\/a> when displaying them to get the old behavior:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/3622e6b5-aa22-4a34-90bc-c86fde53b97f.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"372\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/3622e6b5-aa22-4a34-90bc-c86fde53b97f.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"402\"\/><\/a><\/p>\n<p>Due to a short term limitation of our GUID to string coercion, the <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/functions\/function-text\"><strong>Text function<\/strong><\/a> is needed to manually convert the GUID to a string before we can use the Upper function.\u00a0 This limitation will be removed shortly, a month from when this article is published you will no longer need to use the Text function.<\/p>\n<h2>GUIDs from thin air<\/h2>\n<p>Finally, you may have a situation in which you\u2019d like to create your own GUID, effectively a large random number that is very, very unlikely to be duplicated.\u00a0 Something that is globally unique.<\/p>\n<p>Not only can the GUID function convert a string to a GUID, it can also create a new GUID if you don\u2019t pass in any arguments.\u00a0 Here\u2019s a Gallery control with its Items property set to the formula <strong>ForAll( [1,2,3,4,5], GUID() )<\/strong>:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b9de83cd-8a29-4093-b823-c06021695943.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"362\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/b9de83cd-8a29-4093-b823-c06021695943.png\" style=\"border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"406\"\/><\/a><\/p>\n<p>When used in this manner, the GUID function is a Volatile function: its value changes each time it is evaluated.\u00a0 For more details see the <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/functions\/function-guid#volatile-functions\">Volatile function section<\/a> in the GUID function documentation.<\/p>\n<h2>A small change may be needed<\/h2>\n<p>As a result of all this, if you use GUIDs with CDS or SQL Server you may need to make a small change to your formulas. <\/p>\n<p>As discussed above, direct comparisons to inline GUIDs in a string will no longer be supported.\u00a0 Although that isn\u2019t very common, you may have some apps that do this today.<\/p>\n<p>The change required is only if you compare GUID fields to an inline string, similar to this:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/a3aa0498-78e9-49a8-9e28-04e6cfa02db0.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"17\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/a3aa0498-78e9-49a8-9e28-04e6cfa02db0.png\" style=\"margin: 3px 0px 0px; border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"583\"\/><\/a><\/p>\n<p>Then you will need to wrap the string with the <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/functions\/function-guid\"><strong>GUID function<\/strong><\/a>:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/6a3ad084-b609-40a2-8053-e8365b6e608d.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"18\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/6a3ad084-b609-40a2-8053-e8365b6e608d.png\" style=\"margin: 3px 0px 0px; border: 0px currentcolor; border-image: none; display: inline; background-image: none;\" title=\"image\" width=\"663\"\/><\/a><\/p>\n<p>Even if you have this in your formulas today, you don\u2019t need to make this change right away, it will be months until it is required.\u00a0 With the guidance in this blog post you can get ahead of the curve and make the change now if you turn on the experimental switch described above.\u00a0\u00a0 The places to fix are easy to identify as they will show up as errors in the Studio.<\/p>\n<h2>Your valuable feedback<\/h2>\n<p>This feature is still experimental and while it is we\u2019d love to hear your feedback.\u00a0 And as always, we very much appreciate all your feedback on the <a href=\"https:\/\/powerusers.microsoft.com\/t5\/PowerApps-Community\/ct-p\/PowerApps1\">community forums<\/a>.<\/p>\n<p>Yes, a small changes to how we work with GUID string literals is coming, but not immediately.\u00a0 When it arrives the formula changes are easy to identify, make, and can even be made now.\u00a0 Please let us know if you run into anything unexpected as we\u2019d like to make this transition as painless as possible.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For those who work with primary and foreign keys on CDS and SQL Server, we have added GUID as a first class data type.  Although not common, you may want to beat the rush and start updating any formulas that use literal GUID strings.<\/p>\n","protected":false},"author":86,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","ms-ems-related-posts":[],"footnotes":""},"audience":[3378],"content-type":[3424],"job-role":[],"product":[3473],"property":[],"topic":[],"coauthors":[2104],"class_list":["post-7","post","type-post","status-publish","format-standard","hentry","audience-it-professional","content-type-news","product-power-apps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Fun with GUIDs! - Microsoft Power Platform Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fun with GUIDs! - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"For those who work with primary and foreign keys on CDS and SQL Server, we have added GUID as a first class data type. Although not common, you may want to beat the rush and start updating any formulas that use literal GUID strings.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/fun-with-guids\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-15T09:00:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T15:06:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png\" \/>\n<meta name=\"author\" content=\"Greg Lindhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Greg Lindhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/\"},\"author\":[{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/greg-lindhorst\/\",\"@type\":\"Person\",\"@name\":\"Greg Lindhorst\"}],\"headline\":\"Fun with GUIDs!\",\"datePublished\":\"2018-11-15T09:00:14+00:00\",\"dateModified\":\"2025-06-11T15:06:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/\"},\"wordCount\":1599,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png\",\"keywords\":[\"Dataverse\",\"Formulas\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/\",\"name\":\"Fun with GUIDs! - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png\",\"datePublished\":\"2018-11-15T09:00:14+00:00\",\"dateModified\":\"2025-06-11T15:06:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage\",\"url\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png\",\"contentUrl\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fun with GUIDs!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"width\":194,\"height\":145,\"caption\":\"Microsoft Power Platform Blog\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/dbd4cb8af4503e696f240353831f05d4\",\"name\":\"Greg Lindhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g0133d144d5ed416197bd3b29ccd9a59c\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g\",\"caption\":\"Greg Lindhorst\"},\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/gregli\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Fun with GUIDs! - Microsoft Power Platform Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/","og_locale":"en_US","og_type":"article","og_title":"Fun with GUIDs! - Microsoft Power Platform Blog","og_description":"For those who work with primary and foreign keys on CDS and SQL Server, we have added GUID as a first class data type. Although not common, you may want to beat the rush and start updating any formulas that use literal GUID strings.","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/fun-with-guids\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2018-11-15T09:00:14+00:00","article_modified_time":"2025-06-11T15:06:07+00:00","og_image":[{"url":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png","type":"","width":"","height":""}],"author":"Greg Lindhorst","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Greg Lindhorst","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/greg-lindhorst\/","@type":"Person","@name":"Greg Lindhorst"}],"headline":"Fun with GUIDs!","datePublished":"2018-11-15T09:00:14+00:00","dateModified":"2025-06-11T15:06:07+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/"},"wordCount":1599,"commentCount":0,"publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage"},"thumbnailUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png","keywords":["Dataverse","Formulas"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/","name":"Fun with GUIDs! - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage"},"thumbnailUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png","datePublished":"2018-11-15T09:00:14+00:00","dateModified":"2025-06-11T15:06:07+00:00","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#primaryimage","url":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png","contentUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/dc10f369-b48f-4215-a880-1dc0d75cf97d.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/11\/15\/fun-with-guids\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Fun with GUIDs!"}]},{"@type":"WebSite","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","width":194,"height":145,"caption":"Microsoft Power Platform Blog"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/dbd4cb8af4503e696f240353831f05d4","name":"Greg Lindhorst","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g0133d144d5ed416197bd3b29ccd9a59c","url":"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d2e26bc357423265c4eeeb6a4ed51bd71fb29b8eced3e31f4bc1ccd5bedaf80f?s=96&d=mm&r=g","caption":"Greg Lindhorst"},"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/gregli\/"}]}},"bloginabox_animated_featured_image":null,"bloginabox_display_generated_audio":false,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":1,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"predecessor-version":[{"id":130994,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/7\/revisions\/130994"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=7"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=7"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=7"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=7"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=7"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=7"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}