这是一个很长的标题,但它说明了一切。我正在尝试创建一个创建表的过程。我希望可以通过在参数中写入来选择表的名称。我已经减少了一些代码,所以你可以看到我的问题。
我到目前为止,但它没有用 - 任何想法?
go
create proc newUser
@username varchar
as
execute 'create table '@username'(
id int,
name varchar
)'
答案 0 :(得分:4)
此代码使用引号来完成工作以避免SQL注入:
CREATE PROCEDURE newUser
@username NVARCHAR(1000)
AS
DECLARE @cmd NVARCHAR(1000)
SET @cmd=N'CREATE TABLE '+quotename(@username)+N'(id INT, name NVARCHAR(1000))';
EXEC (@cmd);