我写了一段存储过程==============================================================
alter PROCEDURE sp_Q4
@VEID varchar(10)
AS
BEGIN
DECLARE @strSQL nvarchar(1000)set @strSQL='CREATE TABLE [UserInfo'+@VEID+']([UserId] [varchar] (10) COLLATEChinese_PRC_CI_AS NOT NULL) ON [PRIMARY]' EXEC(@strSQL)
end
==============================================================我是用exec执行一段字符串写的SQL语句,来创建一个表的。
在一个数据库服务器上执行这个存储过程,没有问题,表都创建了。
但是在另一台数据库服务器上,这个EXEC却不起作用,不报任何错误。但是就是不执行,那是为什么呢?
是有什么设置上的问题吗?
alter PROCEDURE sp_Q4
@VEID varchar(10)
AS
BEGIN
DECLARE @strSQL nvarchar(1000)set @strSQL='CREATE TABLE [UserInfo'+@VEID+']([UserId] [varchar] (10) COLLATEChinese_PRC_CI_AS NOT NULL) ON [PRIMARY]' EXEC(@strSQL)
end
==============================================================我是用exec执行一段字符串写的SQL语句,来创建一个表的。
在一个数据库服务器上执行这个存储过程,没有问题,表都创建了。
但是在另一台数据库服务器上,这个EXEC却不起作用,不报任何错误。但是就是不执行,那是为什么呢?
是有什么设置上的问题吗?
2、少个空格
3、定义nvarchar(1000) ,常量最好加N'
alter PROCEDURE sp_Q4
@VEID varchar(10)
AS
BEGIN
DECLARE @strSQL nvarchar(1000)set @strSQL=N'CREATE TABLE [UserInfo'+@VEID+N']([UserId] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL) ON [PRIMARY]' EXEC(@strSQL)
end
refresh看看