From data type varchar to varbinary is not allowed

The issue:
insert into tb_Admin values (1,111, 'ricky',1234)
Implicit conversion from data type varchar to varbinary is not allowed. Use the CONVERT function to run this query.


Root Cause: the column 'AdminName' define as varbinary.

--The table structure:
CREATE TABLE [dbo].[tb_Admin](
 [ID] [int] NOT NULL,
 [AdminNum] [varchar](50) NULL,
 [AdminName] [varbinary](50) NULL,
 [AdminPwd] [varbinary](50) NULL,
 CONSTRAINT [PK_tb_Admin] PRIMARY KEY CLUSTERED 
(
 [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

Resolution:

Insert into tb_Admin(ID,AdminNum,AdminName,AdminPwd) values (1,111,cast('name' as varbinary(50)),cast('1234' as varbinary(50)))


Result1:


ID AdminNum AdminName AdminPwd
1 111         0x6E616D65 0x31323334


Search the original information:

SELECT TOP 10 [ID]
      ,[AdminNum]
      , cast([AdminName] as varchar(50))
      , cast([AdminPwd] as varchar(50))
  FROM [db_ExamOnline].[dbo].[tb_Admin]

Result2:

ID AdminNum (No column name) (No column name)
1 111 name 1234


猜你喜欢

转载自blog.51cto.com/57388/2119511
今日推荐