E m*_*mad 12 sql sql-server sql-server-2008-r2
我正在为某种大学写一个数据库,并且有一个名为的表
Contact_Assign其参数是:
Is_Instructor UD_BOOLEAN NOT NULL,
Is_TeacherAssistant UD_BOOLEAN NOT NULL,
Is_Student UD_BOOLEAN NOT NULL,
Registration_ID UD_ID NOT NULL,
Contact_ID UD_ID NOT NULL,
Run Code Online (Sandbox Code Playgroud)
现在我想在此表中插入虚拟数据,但我不知道如何为布尔参数执行此操作.
PS.UD_BOOLEAN是
CREATE TYPE UD_BOOLEAN FROM BIT
Run Code Online (Sandbox Code Playgroud)
任何想法怎么样?
Mar*_*ith 22
您可以使用
CRYPT_GEN_RANDOM(1) % 2
Run Code Online (Sandbox Code Playgroud)
优点RAND
是它更强大的加密(你可能不关心),如果插入多行,它会重新评估每一行.
DECLARE @T TABLE(
B1 BIT,
B2 BIT);
INSERT INTO @T
SELECT TOP 10 CRYPT_GEN_RANDOM(1)%2,
CAST(ROUND(RAND(), 0) AS BIT)
FROM master..spt_values
SELECT *
FROM @T
Run Code Online (Sandbox Code Playgroud)
将在第二列的所有行中给出相同的值
如果您只生成一行,则可以使用以下简单的内容:
SELECT CAST(ROUND(RAND(),0) AS BIT)
Run Code Online (Sandbox Code Playgroud)
但是,如果您生成多行,RAND()
则每行将评估相同的值,因此请参阅Martin Smith的答案.
如果您希望第二列具有不同的值,可以使用newid()
。这是一个例子:
select cast((case when left(newid(), 1) between '0' and '7' then 1 else 0 end) as bit)
Run Code Online (Sandbox Code Playgroud)
newid()
仅当您在单个语句中插入多行时才需要。
归档时间: |
|
查看次数: |
5821 次 |
最近记录: |