SQL Server 存入数据库?

sankt 2013-09-11 11:11:33
一般来说,这样是可以的

insert into table(col1) values(N'中文数据')

如果是个变量,那么如何写SQL了?

declare @string as nvarchar(100)

set @string = '中文数据'

insert into table(col1) values(N @string), 这样的话有语法错误?

感谢有经验的人分享一下写法,谢谢。



...全文
211 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sankt 2013-09-11
  • 打赏
  • 举报
回复
引用 9 楼 fredrickhu 的回复:
表名或者字段名为变量的时候 需要用到动态语句 详细的可以去看看论坛里面的帖子 动态SQL基本语法
還有其它的寫法沒?
奔四在望 2013-09-11
  • 打赏
  • 举报
回复
引用 8 楼 sankt 的回复:
[quote=引用 7 楼 fredrickhu 的回复:]
这个意思吗?
declare @string as nvarchar(100),@sql VARCHAR(MAX)

set @string = '中文数据'

SELECT @sql= ISNULL(@sql,'')+'insert into [table](col1) values( N'''+ @string+ ''')'

EXEC(@sql)
就是這個意思,可以簡單分析一下原理嗎?[/quote]+1
--小F-- 2013-09-11
  • 打赏
  • 举报
回复
表名或者字段名为变量的时候 需要用到动态语句 详细的可以去看看论坛里面的帖子 动态SQL基本语法
sankt 2013-09-11
  • 打赏
  • 举报
回复
引用 7 楼 fredrickhu 的回复:
这个意思吗?
declare @string as nvarchar(100),@sql VARCHAR(MAX)

set @string = '中文数据'

SELECT @sql= ISNULL(@sql,'')+'insert into [table](col1) values( N'''+ @string+ ''')'

EXEC(@sql)
就是這個意思,可以簡單分析一下原理嗎?
--小F-- 2013-09-11
  • 打赏
  • 举报
回复
这个意思吗?
declare @string as nvarchar(100),@sql VARCHAR(MAX)

set @string = '中文数据'

SELECT @sql= ISNULL(@sql,'')+'insert into [table](col1) values( N'''+ @string+ ''')'

EXEC(@sql)
發糞塗牆 2013-09-11
  • 打赏
  • 举报
回复
那就试试: set @string = convert(nvarchar(xx), @string )
發糞塗牆 2013-09-11
  • 打赏
  • 举报
回复
declare @string as nvarchar(100) set @string = N'中文数据'你在set的时候就应该定义好Unicode类型。这样直接插入也没问题。
sankt 2013-09-11
  • 打赏
  • 举报
回复
这些SQL语句都在SP里面,所以我接受到的数据是"中文数据",然后就存入table中 中文数据会先放在一个变量里面, 比如说 set @string = '中文数据' 接下来问题就是如何插入 set @string = 'N' + @string //这样不对。。。 insert into table(col1) values(@string)
sankt 2013-09-11
  • 打赏
  • 举报
回复
引用 2 楼 fredrickhu 的回复:
declare @string as nvarchar(100)

set @string = '中文数据'

EXEC('insert into [table](col1) values( '+ @string+ ')')
这样的话会有乱码的吧? 中文字符前面需要加N, 但是现在不知道如何转义
--小F-- 2013-09-11
  • 打赏
  • 举报
回复
declare @string as nvarchar(100)

set @string = '中文数据'

EXEC('insert into [table](col1) values( '+ @string+ ')')
lzw_0736 2013-09-11
  • 打赏
  • 举报
回复
insert into table(col1) values(@string)--不是“N @string”
sankt 2013-09-11
  • 打赏
  • 举报
回复
引用 9 楼 fredrickhu 的回复:
表名或者字段名为变量的时候 需要用到动态语句 详细的可以去看看论坛里面的帖子 动态SQL基本语法
有點問題,這樣寫部分數據亂碼,顯示??? 請問如何解决?

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧