首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串转换为unique标识符sql时,转换失败

将字符串转换为unique标识符sql时,转换失败
EN

Stack Overflow用户
提问于 2019-01-13 18:27:49
回答 1查看 625关注 0票数 0

我创建了一个具有以下属性的表:

代码语言:javascript
复制
CREATE TABLE [a02].[property] 
(
    propertyID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT newsequentialid(),
    propertyTitle VARCHAR(100) NOT NULL,
    residenceName VARCHAR(100) NOT NULL,
    residenceStreet VARCHAR(100) NOT NULL,
    postCode VARCHAR(100) NOT NULL,
    bedroomCount INT NOT NULL,
    bathroomCount INT NOT NULL,
    garageCarCount INT NOT NULL,
    internalSqMetres FLOAT NOT NULL,
    outdoorSqMetres FLOAT NOT NULL,
    askingPrice FLOAT NOT NULL,
    sellingPrice FLOAT,
    registeredDate DATE NOT NULL,
    soldDate DATE,
    localityID UNIQUEIDENTIFIER NOT NULL
            REFERENCES [a02].[locality] (localityID),
    typeID UNIQUEIDENTIFIER NOT NULL
            REFERENCES [a02].[propertyType] (typeID),
    accountID UNIQUEIDENTIFIER NOT NULL
            REFERENCES [a02].[userAccount] (accountID)
);

我要插入以下记录:

代码语言:javascript
复制
INSERT INTO [a02].[property] (propertyTitle, residenceName, residenceStreet, 
                              postCode, bedroomCount, bathroomCount, garageCarCount,             
                              internalSqMetres, outdoorSqMetres, askingPrice, sellingPrice,         
                              registeredDate, soldDate, localityID, typeID, accountID)
VALUES ('Ground Floor Maisonette Fgura', '10', 'Triq il-Kbira', 
        'FGR2000', 3, 1.5, 2, 
        130, 50, 250000, 235000, 
        '11/13/2018', '11/13/2018', 
        (SELECT localityName FROM [a02].[locality] 
         WHERE localityName = 'Il-Fgura'), 
        (SELECT typeName FROM [a02].[propertyType] 
         WHERE typeName ='Maisonette'), 
        (SELECT accountID FROM [a02].[userAccount] 
         WHERE accountUsername = 'joeb')),
      ('First Floor Floor Maisonette Fgura', '10', 'Triq il-Kbira', 
       'FGR2000', 3, 1.5, 2, 
       130, 50, 350000, 335000, '11/13/2018', '11/13/2017', 
       (SELECT localityName FROM [a02].[locality] 
        WHERE localityName = 'Il-Fgura'), 
       (SELECT typeName FROM [a02].[propertyType] 
        WHERE typeName = 'Maisonette'), 
       (SELECT accountID FROM [a02].[userAccount] 
        WHERE accountUsername ='joeb')),
      ('Ground Floor Maisonette Mosta', '20', 'Triq il-Qamh', 
       'MST1000', 4, 2, 2, 
       150, 50, 275000, NULL, '11/13/2018', NULL, 
       (SELECT localityName FROM [a02].[locality] 
        WHERE localityName = 'Il-Mosta'), 
       (SELECT typeName FROM [a02].[propertyType] 
        WHERE typeName = 'Maisonette'), 
       (SELECT accountID FROM [a02].[userAccount] 
        WHERE accountUsername = 'lisaA')),
      ('Penthouse Zabbar', '5', 'Triq il-Passa',  
       'ZBR1050', 3, 1, 1, 
       150, 50, 300000, NULL, '11/13/2018', NULL, 
       (SELECT localityName FROM [a02].[locality] 
        WHERE localityName = 'Haz-Zabbar'),
       (SELECT typeName FROM [a02].[propertyType] 
        WHERE typeName = 'Penthouse'), 
       (SELECT accountID FROM [a02].[userAccount] 
        WHERE accountUsername ='joeb'));

我得到了一个错误:

当从字符串转换为unique标识符时,转换失败

它标志着这条线:

代码语言:javascript
复制
INSERT INTO [a02].[property] (propertyTitle, residenceName,residenceStreet, postCode, bedroomCount, bathroomCount, garageCarCount, internalSqMetres, outdoorSqMetres, askingPrice, sellingPrice, registeredDate, soldDate, localityID, typeID, accountID)

有什么线索吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-13 19:12:29

在insert语句中使用下面的查询可将字符串值转换为Use。

字符串值应该是>= 33。如果> 33,则只需33个字符。

代码语言:javascript
复制
SELECT  CAST(
        SUBSTRING(<ColName>, 1, 8) + '-' + SUBSTRING(<ColName>, 9, 4) + '-' + SUBSTRING(<ColName>, 13, 4) + '-' +
        SUBSTRING(<ColName>, 17, 4) + '-' + SUBSTRING(<ColName>, 21, 12)
        AS UNIQUEIDENTIFIER)

就像

代码语言:javascript
复制
INSERT INTO [a02].[property] (
      propertyTitle
      , residenceName
      , residenceStreet
      , postCode
      , bedroomCount
      , bathroomCount
      , garageCarCount
      , internalSqMetres
      , outdoorSqMetres
      , askingPrice
      , sellingPrice
      , registeredDate
      , soldDate
      , localityID
      , typeID
      , accountID
      )
VALUES (
      'Ground Floor Maisonette Fgura'
      , '10'
      , 'Triq il-Kbira'
      , 'FGR2000'
      , 3
      , 1.5
      , 2
      , 130
      , 50
      , 250000
      , 235000
      , '11/13/2018'
      , '11/13/2018'
      , (
            SELECT CAST(
        SUBSTRING(localityName, 1, 8) + '-' + SUBSTRING(localityName, 9, 4) + '-' + SUBSTRING(localityName, 13, 4) + '-' +
        SUBSTRING(localityName, 17, 4) + '-' + SUBSTRING(localityName, 21, 12)
        AS UNIQUEIDENTIFIER)
            FROM [a02].[locality]
            WHERE localityName = 'Il-Fgura'
            )
      , (
            SELECT CAST(
        SUBSTRING(typeName, 1, 8) + '-' + SUBSTRING(typeName, 9, 4) + '-' + SUBSTRING(typeName, 13, 4) + '-' +
        SUBSTRING(typeName, 17, 4) + '-' + SUBSTRING(typeName, 21, 12)
        AS UNIQUEIDENTIFIER)
            FROM [a02].[propertyType]
            WHERE typeName = 'Maisonette'
            )
      , (
            SELECT CAST(
        SUBSTRING(accountID, 1, 8) + '-' + SUBSTRING(accountID, 9, 4) + '-' + SUBSTRING(accountID, 13, 4) + '-' +
        SUBSTRING(accountID, 17, 4) + '-' + SUBSTRING(accountID, 21, 12)
        AS UNIQUEIDENTIFIER)
            FROM [a02].[userAccount]
            WHERE accountUsername = 'joeb'
            )
      )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54171896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档